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" 스트링을 메모리로부터 레지스터 파일로 복사 → 디스플레이 장치로 전송
'KRAFTON JUNGLE > CSAPP' 카테고리의 다른 글
CSAPP ch 3 프로그램의 기계수준 표현 3.6 (0) | 2024.07.24 |
---|---|
CSAP ch 1 컴퓨터 시스템으로의 여행 1 . 5 ~ 1 . 6 (0) | 2024.07.20 |
CSAP ch 1 컴퓨터 시스템으로의 여행 1 . 1 ~ 1 . 3 (0) | 2024.07.06 |
블로그의 정보
농담곰담곰이의곰담농
브이담곰