숭실대학교 하석재 교수님의 2022-1학기 컴퓨터 구조 강의를 정리 및 재구성했다.
-대표적 컴퓨터 구조
- 노이만 아키텍쳐
- 메모리에 적재된 프로그램이 명령어 / 데이터가 혼재되는 형태
-반드시 시작주소 부터 프로그램이 실행되어야 한다.
-명령어와 데이터가 위치에 따라 의미가 달라짐

- 하버드 아키텍쳐
- 프로그램 메모리와 데이터 메모리가 분리되어 저장됨
- 메모리 주소에 따라 같은 데이터가 의미가 달라지지 않는다.
- 성능면에서 장점을 가지지만 비교적 구조가 복잡

- 현재의 컴퓨터 구조
- 메모리는 노이만 구조, 캐시는 하버드 구조를 채택함
-캐시는 명령어 캐시 + 데이터 캐시로 분리해서 관리

-컴퓨터 언어
- 저수준 언어
- Mnemonic(기계어)
-0101 1010 001
- Assembly (어셈블리)
- MOV EAX, 1 (OPCODE (MOV) / Operand(EAX , 1))
- 고수준 언어
- Java / Python / Javascript
- H/W에 대한 접근은 거의 안됨
- 중수준 언어
- C
-하드웨어에 대한 접근을 어느정도 허용 / 성능은 좋지만 해킹과 같은 위험성으로 인한 안정성은 낮다.
- 현재 Go가 명맥을 이어나가고 있으며, Go는 클라우드나 블록체인에서 많이 사용된다.
cf) py-python / C- python
-SW의 최적화
-클럭 스피드/ 워드 / 사이클
1. 클럭 스피드
- CPU의 동작속도를 나타내는 척도
- 물리적인 H/W의 발진자외 연관
-Ex) 4.9GHz AMD Ryzen 5950x (1초에 49억번 사이클을 발생시킴)
-cf) 1GHz 1초에 10억번의 사이클
2. 워드
- CPU가 한 번에 처리할 수 있는 데이터 처리량
-ex) 8/16/32/64bit...
3. 실제 처리량
- 워드 x 사이클 수 (클럭스피드)
-bps/ Mbps / Gpbs
-MB/s, GB/s...
4. 기타
-실제로는 주어진 클럭스피드보다 많이 실행하기 위한 다양한 구조를 가진다.
-한 번에 여러 개의 명령어를 동시에 실행시키기 위한 구조 내장
-멀티 코어 CPU / 파이프라인 / 슈퍼 스케일러
-CISC vs RISC
-CISC(Complex Instruction Set Computer)
-명령어마다 실행하는 시간이 다르다.
-간단한 명령어는 1사이클에서 복잡한 명령어는 4~8사이클이 필요하다.
- 대표적인 아키텍쳐 : X86 / X86-64
-RISC(Reduced Instruction Set Computer)
-명령어마다 실행하는 시간이 같다.
-복잡한 연산은 조합해서 가능하도록 한다.
-대표적인 아키텍쳐 : MIPS / ARM / RISC -V /...
-현재의 CPU 주류 트렌드
-인텔도 겉만 CISC지만 실제로 내부 구조는 거의 RISC구조이다.
-프로그래밍 vs 마이크로 프로그래밍
-프로그래밍
-일반적인 의미의 프로그래밍을 뜻하며, 고수준 ~ 저수준 언어로 코드가 작성된다.
- 마이크로프로그래밍
- CPU안에 기계어를 상대적으로 쉽게 추가할 수 있도록 이용하는 방식이다.
- 어셈블리 코드를 실행하도록 컴퓨터 구조의 각 세부노드(CPU/레지스터 등)을 조정한다.
-Ex) ADD EAX , 10 : ALU를 Adder 모드로 만들고 첫 번째 Operand를 EAX로 하고 두 번째 Operand에 10을 넣어 결과를 다시 EAX로 저장하라.
- 주로 펌웨어/ 바이오스 / CPU안에 저장되어있고, 마이크로프로그래밍 코드는 저작권 보호대상이 된다.
-S/W와 H/W의 관계

- 운영체제는 시스템 S/W로 불린다.
'컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] 프로세서 (0) | 2022.08.28 |
---|---|
[컴퓨터 구조] 컴퓨터 연산 (0) | 2022.08.26 |
[컴퓨터 구조] 명령어 종류, 기능과 형식 (0) | 2022.08.24 |
[컴퓨터 구조] 성능 평가 (0) | 2022.08.23 |
[컴퓨터구조] 컴퓨터 추상화 (0) | 2022.08.23 |