일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Mesh Processing
- window programming
- 그래픽스기초
- 오픈지엘
- OpenGL
- denoising
- modeling
- 윈도우프로그래밍
- 그래픽스
- Graphics
- 컴퓨터 구조
- shader programming
- c4d
- 베지에 곡선
- MFC
- win32
- 렌더링
- 윈도우 프로그래밍
- 윈도우 구조
- shader
- Win32 API
- 운영체제
- 컴퓨터 아키텍쳐
- bezier curve
- Geometry Modeling
- MFC 윈도우 프로그래밍
- 윈도우
- 셰이더
- 핵심 API로 배우는 윈도우프로그래밍
- 셰이더프로그래밍
- Today
- Total
오다기리 박의 알고리즘 노트
4장. 컴퓨터 구조에 대한 두 번째 이야기 본문
4장. 컴퓨터 구조에 대한 두 번째 이야기
1. 컴퓨터 구조의 접근방법
1. 레지스터 디자인 (16비트로) - Direct Addressing 모드
레지스터를 디자인하는데 잇어서 결정해야 할 요소
레지스터를 몇 비트로 구성할 것인가?
몇 개 정도로 레지스터를 구성할 것인가?
레지스터 각각을 무슨 용도로 사용할 것인가?
2. CPU에게 일을 시키기 위한 명령어 구조 및 명령어 종류 디자인
CPU구성형태 (레지스터 구성형태)에 따라서 명령어 구조가 달라진다.
-> 어셈블리 언어로 구현된 프로그램은 구조가 다른 CPU로 이식이 불가능하다.우리가 구성하는 명령어의 형태에 따라서 컨트롤 유닛의 논리회로가 디자인된다.
연산결과는 일단 레지스터에 저장되어야 한다. (첫 번째 피연산자 위치에는 레지스터 이름이 와야 한다)
모든 피연산자에는 메인 메모리의 주소값이 올 수 없다. (피연산자로 올 수 있는 것을 숫자와 레지스터로 제한했기 때문)
2. LOAD & STORE 명령어 디자인
LOAD & STORE 명령어의 필요성
메인 메모리 주소 정보는 사칙연산의 피연산자로 올 수 없기 때문에 메인 메모리에 저장된 데이터를 레지스터로 일단 옮겨다 놓은 다음 사칙연산을 진행해야한다.
LOAD & STORE 명령어 디자인
‘ source 번지에 존재하는 데이터를 레지스터 destination에 저장하라’
‘레지스터 source에 존재하는 데이터를 메인 메모리 destination번지에 저장하라’
LOAD r1, 0x10
LOAD r2, 0x20
ADD r3, r1, r2
STORE r3, 0x30
3. Direct 모드와 Indirect 모드
Direct 모드의 문제점
주소값을 명령어에 직접 표현하는 Direct Addressing 모드로는 할당된 비트 수 안에서 표현 가능한 범위의 메모리 영역만 접근이 가능하기 때문에 메모리의 모든 영역에 대한 접근이 불가능하다.
Indirect 모드
0x10번지에서 값이 아닌 주소값을 참조해서 값을 읽어온다.
Indirect 모드 활용 예제
'운영체제' 카테고리의 다른 글
6장. 커널 오브젝트와 오브젝트 핸들 (0) | 2018.08.08 |
---|---|
5장. 프로세스의 생성과 소멸 (0) | 2018.08.08 |
3장. 64비트 기반 프로그래밍 (0) | 2018.08.08 |
2장. 아스키코드 vs 유니코드 (0) | 2018.08.08 |
1장. 컴퓨터 구조에 대한 첫 번째 이야기 (0) | 2018.08.08 |