목록컴퓨터 구조/Windows System Programming (6)
minhui study
[목차] 1. 메모리 계층(Memory Hierarchy) 2. 캐쉬(Cache)와 캐쉬 알고리즘 3. 가상 메모리(Virtual Memory) Section 01. 메모리 계층(Memory Hierarchy) > 메모리의 범위와 종류 [메인 메모리(Main Memory)] : 거의 모든 컴퓨터가 메인 메모리로 램을 사용한다. 보다 정확히 말하면 D램(D-RAM)계열의 메모리이다. [레지스터(Register)] : CPU 안에 내장되어 있어서 연산을 위한 저장소를 제공한다. [캐쉬(Cache)] : 캐쉬는 D램보다 빠른 S램으로 구성하는데 캐쉬는 CPU와 램 사이에서 중간 저장소 역할을 하는 메모리이다. [하드디스크(Hard Disk)와 이외의 저장 장치들] : 하드디스크는 크고 작은 파일들을 저장하기 ..
Section 02. 함수 호출 인자의 전달과 PUSH & POP 명령어 디자인 > PUSH & POP STORE 명령어를 이용해서 첫 번째 전달인자인 숫자 7을 현재 sp레지스터가 가리키는 메모리 영역에 저장하고자 한다. 참고로 STORE 명령어는 앞 장에서 배웠듯이 STORE 대상(레지스터), 목적지(메모리 주소)형태이어야 한다. 첫 번째로 7을 임의의 레지스터에 저장한다. (MOV 명령어도 있지만 우리는 사칙연산 명령어만 만들어 놓았기 때문에 일단 ADD로 진행) ADD r1, 7, 0 두 번째로는 sp레지스터에 7을 넣어야 하지만 목적지에는 메모리주소가 와야 하므로 Indirect모드 연산을 해야 한다. 일단 sp가 지니고 있는 값을 0x40번지(다른 주소의 메모리도 상관없음)에 저장한다. STO..
[목차] 1. 절차적 함수 호출 지원 CPU 모델 2. 함수 호출 인자의 전달과 PUSH & POP 명령어 디자인 3. 함수 호출에 의한 실행의 이동 4. 함수 호출 규약 Section 01. 절차적 함수 호출(Procedure Call) 지원 CPU 모델 > Stack Frame 구조 다음 그림은 함수 호출과 스택 관계를 보여준다. -> Stack Frame : 함수 호출 과정에서 할당되는 메모리 블록 fct2 함수가 호출되면서 이 함수 내에 선언된 변수 e와 h가 스택에 할당되는데 미 메모리 블록을 가리켜 스택 프레임이라 한다. fct2 함수가 반환되면 이 스택 프레임은 모두 반환된다. 스택 프레임은 가장 먼저 할당되면 가장 나중에 반환된다. > sp(Stack Pointer) 레지스터 계속해서 스택..
Section 03. Direct 모드와 Indirect 모드 지금까지 우리가 언급한 메모리 접근방법을 가리켜 Direct모드라 하는데 이 방법을 통해서는 메모리의 모든 영역에 대한 접근이 불가능하다. 왜냐하면 위 그림을 보면 3개의 비트 수로 표현되는 destination부분은 레지스터 갯수가 총 8개여서 문제 될 것이 없지만 메인 메모리 주소값을 나타내는 soure부분에는 표현할 수 있는 값의 범위가 0x0000에서부터 0x00ff까지가 전부이기 때문에 0x100번지에 저장되어 있는 데이터를 참조하고자 한다면 문제가 되기 때문이다. Direct모드에서는 레지스터에 저장할 데이터가 존재하는 주소를 직접적으로 표현하였는데 반대로 Indirect모드에서는 명령어에서 지정하는 번지에 저장된 값을 주소값으로 ..
[목차] 1. 컴퓨터 구조의 접근 방법 2. LOAD&STORE 명령어 디자인 3. Direct 모드와 Indirect 모드 Section 01. 컴퓨터 구조의 접근 방법 > 레지스터를 디자인하자 ① 레지스터를 몇 비트로 구성할 것인가? ② 몇 개 정도로 레지스터를 구성할 것인가? ③ 레지스터 각각을 무슨 용도로 사용할 것인가? 16비트인 8개의 레지스터로 구상해보자 (r4부터 각 각 또 다른 이름을 지니도록 했는데 이 4개의 레지스터들을 특수한 목적으로 사용하기 위해서 그렇게 한 것이다. > 명령어 구조 및 명령어를 디자인하자 여기서 주목할 것은 레지스터와 명령어의 상관관계이다. CPU가 달라지면 명령어 구조가 달라지기 떄문에 어셈블리 언어로 구현된 프로그램은 구조가 다른 CPU로 이식이 불가능하다. ..
[목차] 1. 시스템 프로그래밍의 이해와 접근 2. 컴퓨터 하드웨어의 구성 3. CPU에 대한 이해 4. 프로그래밍의 실행 과정 5. 하드웨어 구성의 재접근 Section 01. 시스템 프로그래밍의 이해와 접근 > 시스템 프로그래밍(System Programming)이란? - 시스템 프로그램 = "컴퓨터 시스템을 동작시키는 프로그램" ex) Windows, Unix 와 같은 운영체제들 - 시스템 프로그래밍 : Windows 운영체제 기반의 컴퓨터에게 일을 시키기 위한 프로그램을 구현하는 것 > 컴퓨터 시스템의 주요 구성요소(Main Components) Section 02. 컴퓨터 하드웨어의 구성 > 컴퓨터 하드웨어의 구성 - CPU(Central Processing Unit) : "중앙 처리 장치 " ..