728x90
1. CPU
마이크로 컴퓨터 디자인
CPU 내부 구조
- 레지스터(엄청 빠르고 작음) : 레지스터로 가져와서 일을 처리한다.
- 캐시(caeche)도 cpu안에 있고 속도는 빠른편이지만 레지스터보단 느림
- 고주파 Clock : CPU 내부 작업을 다른 시스템 구성요소와 동기화를 할 때 사용한다.
- CU(컨트롤 유닛)-제어장치 : 읽어드리는 기계어를 컨트롤하는데 사용. 어떤 명령어를 가져올지..
- ALU(산술 논리 장치) : 산술연산 및 논리 연산을 수행한다.
CPU는 컴퓨터의 마더보드의 CPU소켓에 부착된 핀을 통해 컴퓨터의 나머지 부분에 연결됩니다.
대부분의 핀은 데이터 버스, 제어버스 및 주소버스에 연결된다.
2. 메모리 저장 장치 (RAM)
- 컴퓨터 프로그램이 실행되는 동안 명령과 데이터를 다 메모리 안에 적재해서 실행한다.
- 메모리에 실행할 명령어가 쭉 놓여있으면 그걸 레지스터로 가져와서 명령을 수행하는 식이다.
- CPU로부터 데이터 요청발생 → RAM(랜덤 액세스 메모리)에서 CPU로 데이터를 전송→ 연산 후 CPU에서 메모리로 데이터를 전송.
- 모든 데이터 처리는 CPU 내에서 이루어지므로 메모리에 있는 프로그램은 실행하기 전에 CPU로 복사해야 합니다. (폰노이만 구조의 특징)
- 개별 프로그램 명령어를 한 번에 하나씩 CPU에 복사하거나 명령어 그룹을 함께 복사할 수 있습니다.
3. 버스(Bus)
컴퓨터의 한 부분에서 다른 부분으로 데이터를 전송하는 병렬 전선 그룹입니다.
기기들간의 연결을 하고 통로역활을 해준다.
버스의 4가지 종류
- Data bus : CPU와 메모리 간에 명령어와 데이터를 전송한다.
- I/O bus : 시스템과 입/출력 디바이스와 신호를 주고 받을 때 (데이터 전송할 때)
- Control bus : 바이너리 신호를 사용 해 동기화를 담당하는 버스 - 디바이스간의 컨트롤 담당
- Address bus : 현재 실행 중인 명령어가 CPU와 메모리 간에 데이터를 전송 할 때 명령어와 데이터의 주소를 보유한다.
- 폰노이만 구조에서 램에는 명령어(코드)와 데이터가 들어있기 때문에 이 버스에서 주소는 명령어를 가리킬수도 데이터를 가리킬수도 있다.
4. 클락(Clock)
- CPU내부의 시계이다.
- CPU 및 시스템 버스와 관련된 각 작업은 일정한 속도로 펄싱되는 내부 클럭에 의해 동기화됩니다
- 40억분에 1초에 째깍 하기 때문에 그것에 맞춰서 진행한다. 그 째깍 하는 한번을 틱이라고 부른다.
- 컴퓨터가 하는 가장 작은 하는 일은 한 사이클 안에 실행이 되는 것이다. (한사이클이란 째깍 한번일라는 뜻)
- 즉 머신 명령어를 실행하려면 최소 한번의 클록 사이클이 필요하다.
용어
- 머신 사이클 (Machine cycle (or clock cycle)) : 머신 명령(machine instructions)의 기본 시간 단위
- 주기 길이 (The length of a cycle) : 한번의 완전한 클럭 펄스에 필요한 시간
- 클럭 주시 시간 (The duration of a clock cycle) : 시계속도의 역수로 계산된다.
- 예시 : 초당 10억번 진동하는 시계 (1GHz) : 10억 분에 1초 (1나노초)
명령어 중 가장 짧은명령어
wait states 라는 명령어로 딱 한클락 쉬라는 뜻이다.
이 명령어는 연산동기화 등의 이유로 사용한다.
또한 메모리 엑세스가 필요한 명령어 같은 경우 CPU, 시스템 버스 및 메모리 회로의 속도차이로 인해 빈 클록 사이클이 있는 경우가 많다.
728x90
'CSE > system programing' 카테고리의 다른 글
[시스템 프로그래밍 3-1] X86 프로세서 작동모드(Real mode, protected mode, Address space) (0) | 2023.03.20 |
---|---|
[시스템 프로그래밍 2-3] CPU 명령 실행주기 프로그램 실행 과정(bottleneck 병목현상,캐쉬의 계층화) (1) | 2023.03.19 |
[시스템 프로그래밍 2-1] X86아키텍쳐 amd64와 ARM 비교(X86 Processor Architecture) (0) | 2023.03.19 |
[시스템 프로그래밍 1강] 어셈블리어란 (0) | 2023.03.07 |
윈도우(window, ms)의 역사 (0) | 2022.12.19 |