농담곰담곰이의곰담농

CSAP ch 1 컴퓨터 시스템으로의 여행 1 . 4

by 브이담곰

1.4 프로세서는 메모리에 저장된 인스트럭션을 읽고 해석한다

 

1.4.1 시스템의 하드웨어 조직

시스템 하드웨어의 구성

 


버스(Buses)

- 시스템 내를 관통하는 전기적 배선군

- 컴포넌트들 간의 바이트 정보들을 전송한다.

- 워드 단위로 데이터를 전송하도록 설계됨

워드(word) : 고정 크기의 바이트 단위
한 개당 구성하는 바이트 수는 시스템 마다 보유하는 기본 시스템 변수에 따라 다름!
4바이트(32비트) or 8바이트(64비트) 가 대부분임.

 

 

입출력 장치

- 입력용 키보드와 마우스, 출력용 디스플레이, 디스크 드라이브 등

- 입출력 버스와 컨트롤러나 어댑터를 통해 연결

      → 입출력 버스와 입출력 장치들 간에 정보를 주고 받도록 해줌.

 

메인 메모리

- 프로그램을 실행하는 동안 데이터와 프로그램을 모두 저장하는 임시 저장장치

- DRAM(Dynamin Random Access Memory) 칩으로 구성되어 있음.

 

프로세서(CPU)

- 메인 메모리에 저장된 인스트럭션들을 해독(실행)하는 엔진

- 워드 크기의 저장장치(또는 레지스터)인 프로그램카운터(PC)가 있음

- 컴퓨터 전원이 끊어질 때까지 PC가 가리키는 곳의 인스트럭션을 반복적으로 실행 및 PC 값이 다음 인스트럭션의 위치를 가리키도록 업데이트.

Register file : 각각 고유의 이름을 갖는 워드 크기의 레지스터 집합으로 구성

ALU : 새 데이터와 주소 값을 계산

 

인스트럭션 요청에 의한 CPU가 실행하는 단순 작업의 예)

적재(Load) 메인 메모리에서 레지스터에 한 바이트 또는 워드를 이전 값에 덮어쓰는 방식으로 복사
저장(Store) 레지스터에서 메인 메모리로 한 바이트 또는 워드를 이전 값을 덮어쓰는 방식으로 복사
작업(Operate) 두 레지스터의 값을 ALU로 복사, 두 개의 워드로 수식 연산을 수행한 뒤, 결과를 덮어쓰기 방식으로 레지스터에 저장.
점프(Jump) 인스트럭션 자신으로부터 한 개의 워드를 추출. 이것을 PC에 덮어쓰기 방식으로 복사.

 

 

1.4.2 hello 프로그램의 실행

키보드 ":\hello"입력 → 각각 문자를 레지스터에서 읽음 → 메모리 저장 

Enter키 입력 → 쉘 파일 내의 코드와 데이터 복사 → 인스트럭션 실행 → 실행 파일 hello 디스크에서 꺼냄 → 메인 메모리 로딩

 

hello 목적파일의 코드와 데이터 메모리 적재 → PC hello 프로그램의 main 루틴 기계어 인스트럭션 실행 → 인스트럭션 "hello, world\n" 스트링을 메모리로부터 레지스터 파일로 복사 →  디스플레이 장치로 전송

블로그의 정보

농담곰담곰이의곰담농

브이담곰

활동하기