본문 바로가기

전체 글

(185)
5. 데이터 경로 (1/4) 개요 보호되어 있는 글입니다.
4. 명령어 집합 (2/2) 주소 지정 방식 컴퓨터에서 연산을 수행하려면 필요한 데이터의 위치를 알아야 한다. 그리고 데이터를 저장하는 공간은 메모리, 레지스터 등 다양하다 명령어의 피연산자 필드와 데이터의 실제위치의 관계식은 이걸 사용한다. R = 피연산자 필드가 명시하는 레지스터 주소 A = 피연산자 필드가 명시하는 메모리 주소 EA = 참조되는 데이터를 포함하는 장소의 실제 주소, 즉 유효 주소 Reg[x] = 레지스터 x의 내용 M[x] = 메모리 x번지의 내용 0-단계 주소 지정 방식 데이터가 있는 위치를 파악하기 위한 특별한 과정이 없어서, 데이터의 유효 주소를 명시하지 않는다. 즉치 주소 지정과, 묵시 주소 지정으로 나뉜다. 1. 즉치 주소 지정(immediate addressing mode) 상수 주소 지정, 즉석 주소 지정 등으로 ..
3. 컴퓨터의 성능 (4/4) 트래픽 계산 가상의 명령어를 실행하는데 몇 바이트가 드는지 계산해본다. 가산기, 레지스터 등 CPU 내부에 기억장치가 없는 메모리 - 메모리 컴퓨터 구조이다. 모든 데이터가 CPU를 경유해 메모리로 전송되기 때문에, 명령어의 피연산자 필드엔 메모리 전체 주소를 명시해야 한다. 메모리-메모리 컴퓨터 구성은 다음과 같다. 연산 부호 8비트, 즉 1바이트 연산마다 최대 2개의 피연산자 첫 번째 피연산자는, 목적지 겸용 (Z = Z + X) 메모리 주소는 16비트, 즉 2바이트 데이터 크기는 32비트, 즉 4바이트 (1워드) 명령어는 2^8개인 256개이고, 데이터는 2^32의 수를 다룰 수 있고, 메모리는 2^16워드 용량의 메모리 사용 가능 다음과 같은 명령어 집합이 있다 하자. MOV y, a MUL y, x MUL ..
3. 컴퓨터의 성능 (3/4) 연산 연산의 종류 1. 전송 연산 - CPU 내의 레지스터와 메모리 사이의 데이터를 교환하는 적재, 저장 연산(LDA/STA) 2. 처리 연산 - 산술논리장치로 데이터를 조작 - ADD, USB 등 3. 제어 연산 - 프로그램 실행 순서를 제어 - 반복문, 조건문, 프로시저등 4. I/O 연산 - 레지스터와 외부 장치 사이의 데이터 이동을 수행 - 매우 느리다 분기 명령 프로그램을 비순차적으로 수행할 때 사용하는 명령. 명령어에 다음 명령어의 위치를 명시하지 않음. 다음 명령어는 현재 명령어의 다음 위치에 있다고 간주 조건에 따라, 무조건 분기(JMP) 조건 분기(IF, JNE 등) 프로시저 호출, 복귀 등이 있다. CPSR 조건 분기에선 두 가지 방식이 있는데 묵시적 조건, 명시적 조건이 있다. 묵시적 조건..
3. 컴퓨터의 성능 (2/4) CPU의 기본 구성과 명령어 집합 기본 구성 폰노이만 구조를 기준으로 설명한다. 여기에 있는 명령어 집합은 가상의 명령어이다. 각 요소를 설며여하면 1. PC (프로그램 계수기) 다음에 실행할 명령어의 주소를 보관. 명령어 인출 후, 명령어 길이만큼 증가해, 다음 명령어를 가리킨다. 분기 명령어의 겨여우, 목적지 주소를 가리킨다. 2. IR (명령 레지스터) 가장 최근에 인출한 데이터를 보관 3. ACC (누산기) 프로시적 메모리에 접근하기 위해 참조하려는 데이터의 주소를 명시 4. MAR (Memory Address register) 메모리 주소 레지스터. 프로세서가 메모리에 접근하기 위해 참조하려는 데이터의 주소를 명시 5. MBR (Memory Buffer register) 메모리 버퍼 레지스터. 프로세서가 메모리부터 읽거나, 메모..
3. 컴퓨터의 성능 (1/4) 명령어 집합 의미 명령어 집합 구조(ISA)는 좁은 의미에서 컴퓨터 구조이다. ISA는 작성된 프로그램과 그 프로그램을 수행할 HW 사이의 인터페이스에 대한 완전한 정의이다. 즉, ISA는 추상화 개념이며, 이걸 구체화한 걸 Micro Architecture라고 한다. ISA에서 명시하는 사항은 다음과 같다. 1. 하드웨어가 어떤 연산을 수행하고, 각 연산에 어떤 데이터가 필요한지. 2. 사용할 수 있는 데이터의 표현 방식(Data type) 3. 주소 지정 방식(addressing mode) 명시 명령어 집합 설계에는 여러 주요 사항들이 있는데 다음과 같다. 1. 연산의 종류 프로세서가 수행할 수 있는 일의 종류 일반적으로 전송(transfer), 처리(processing), 제어(control), I/O 연산 4..
2. 컴퓨터의 성능 (3/3) CPU 성능에 영향을 주는 요소 CPU는 다음 3가지로 성능이 결정된다. 1. 명령어 개수 2. 평균 CPI 3. 클록 속도 물론 3가지를 다 줄이면 좋겠지만, 각 요소는 서로 충돌한다. 예를 들어 클록 사이클 시간을 낮추면 평균 CPI가 증가할 수 있고, 평균 CPI를 낮추면 명령어 개수가 늘어날 수 있다. (곱셈 연산을 없애면, CPI가 낮아지만, 곱셈을 덧셈으로 풀어써야 해 명령어 개수 증가) 이 3가지 요소를 자세하게 보면. 1. 명령어 개수 알고리즘과 아키텍처에 의해 결정 알고리즘의 예를 들면, 효율적인 정렬은, 명령어 개수를 줄여준다. 또한, 하나의 명령어가 수행하는 일이 많으면, 프로그램의 크기를 줄일 수 있다. 예를 들어 곱셈 연산은 x 하나면 충분하지만, 이게 없다면 다수의 + 연산을 통해 구현해야 한다. 아키텍처는 C..
2. 컴퓨터의 성능 (2/3) CPU 성능 분석 CPU의 사양 중 클록 속도라는 것이 있다. 클록 속도는 1초당 1.0 * 10^9 사이클을 나타내며 1ns이다. 하지만 클록속도가 3GHz인 CPU가 2GHz인 CPU보다 반드시 성능이 우수하다곤 할 수 없다. 클럭 속도는 CPU의 성능에 영향을 주는 요소 중 하나이기 때문이다. 예를 들면, 두발 자전거와 세발 자전거가 있을 때, 세발 자전거가 두발 자전거보다 바퀴가 작아 빠르게 돌릴 수 있지만, 페달을 더 빨리 밟는다고 해서 두발 자전거보다 더 빠른 건 아니다. CPU의 성능은 앞장의 프로그램 실행 시간으로 나타낼 수 있고, CPU의 성능이 좋을 수록, 프로그램 실행 시간이 짧다.(반비례) 프로그램 실행 시간은 다음 3개 요소로 나타낼 수 있다. 첫 번째 요소의 명령어 개수는 프로그램의 크기를 의미한..