'Computer Science/Computer Architectures' 카테고리의 글 목록 (2 Page) — Archive

Computer Science/Computer Architectures

Computer Science/Computer Architectures

[Computer Architectures] ALU | 산술/논리 연산 장치

ALU (Arithmetic and Logic Unit) 산술/논리 연산 장치 Abtracted ALU \(\texttt{A, B}\) : Operands (연산 대상, N bits) \(\texttt{Y}\) : 연산 결과 (N bits) \(\texttt{F}\) : ALU가 수행할 연산의 종류를 구분짓는 Contorl Signal (3 bits) ※ 32bits MIPS 시스템의 경우, N = 32가 될 것이다. ALU Details - 위 Diagram에서 ALU가 출력하는 Zero-Signal은 표현되지 않았다. - 7개의 연산 종류를 구분짓기 위해 ALU Control Signal(F)은 최소 3bits로 구현되어야 한다. - 8개의 F코드 중 011은 사용되지 않는다. - F2(F의 MSB)..

Computer Science/Computer Architectures

[Computer Architectures] Instruction Processing Process | 명령어 처리 과정

Instruction Processing Process 명령어 처리 과정 - Program Termination 전까지 아래 4단계가 반복된다. 1. Fetch - PC가 저장하고 있는, 실행될 명령어가 저장된 주소에서 해당 명령어를 CPU로 가져온다. 2. Decoding - Extract Op-Code : 해당 명령어가 어떤 종류의 연산을 지시하는지 해석한다. - Extract Operands : 명령어가 지시한 피연산자(Register, Immediate Field 등)를 해석한다. 3. Execution - 앞서 해석한 연산의 종류에 따라 ALU를 적절히 활용한다. - 산술/논리 연산의 경우, ALU를 산술/논리 연산에 활용한다. - Read/Write 연산의 경우, ALU를 접근하고자 하는 메모..

Computer Science/Computer Architectures

[Computer Architectures] Microarchitecture | 마이크로 아키텍처

Microarchitecture 마이크로 아키텍처 - ISA를 이해하고 명령어의 의도대로 실행되는 CPU 내부의 하드웨어 구조를 의미한다. - 기능적인 동작, 최소 비용, 최소 전력, 최대 퍼포먼스 설계를 지향한다. - 명령어를 처리하는 방법에 따라, 크게 두 가지의 설계 방법이 존재한다. (Single Cycle, Pipeline) 1. Single Cycle Microarchitecture - 모든 종류의 명령어가 한 사이클에 처리될 수 있도록 설계된 구조이다. - 직관적인 설계가 가능하며, 모든 경우에 CPI = 1.0 으로 유지된다. - 복잡한 명령어도 한 사이클에 처리해야 하므로, 클럭 주기가 길어질 수 있다. 2. Pipeline Microarchitecture - Task를 병렬로 처리하도록..

Computer Science/Computer Architectures

[Computer Architectures] Floating Point Adder H/W | 부동 소수점수 덧셈 하드웨어 구조

Floating Point Adder H/W 부동 소수점수 덧셈 하드웨어 구조 - 부동 소수점 연산은 정수 연산보다 복잡하기 때문에 한 Cycle에 연산이 완수되도록 설계할 것이 아니라, 여러 Cycle에 처리되도록 설계하는 것이 바람직하다. - 한 Cycle에 처리하도록 설계하면, 다른 연산을 수행하는 시간에도 영향을 미치게 된다. - 부동 소수점 연산을 수행하는 하드웨어는 One-Clock Cycle보다는 Pipeline 방식으로 구현된다.

Computer Science/Computer Architectures

[Computer Architectures] IEEE 754 Floating Point Format | IEEE 754 부동 소수점수 저장 형식

IEEE 754 Floating Point Format IEEE 754 부동 소수점수 저장 형식 - 정수가 아닌, 실수를 32bits 혹은 64bits 메모리에 저장하는 방식 중 하나이다. - IEEE Std 754-1985에 정의되어 있으며, 가장 널리 쓰이는 표준이다. - 부동 소수점 값이 IEEE에 저장되기 위해서는 반드시 Normalized*된 수치이어야 한다. * Normalized Notation (정규화 표기) - Scientific Notation과 유사한 형태로, 정수부에 한 자리수가 위치하고, 10의 Exponent 형태로 나타내는 방식이다. - 즉, 정규화 표기에서 Significand의 절댓값은 1.0 이상 2.0이하의 범위내에 위치한다. ex) \(-1.34 * 10^{56}\) ..

Computer Science/Computer Architectures

[Computer Architectures] Performance | 성능

Performance 성능 - 컴퓨터의 대표적인 Performance Measurement 지표로는 Response Time(응답시간)과 Throughput(처리율)이 있다. - 시스템의 타입이나 용도에 따라 중요시되는 지표가 서로 다르다. Response Time = Execution = Latency (응답 시간, 실행 시간, 대기 시간) - 하나의 Task가 시작되고 종료되기까지 소요된 시간이다. - 컴퓨터 시스템을 구성하는 모든 요소들의 성능에 좌우되는 지표이다. (이에 반해, CPU만의 성능을 나타내는 지표로는 CPU Time*이 있다.) - PC(개인 사용자), Embedded Computer등에서 중요시되는 지표이다. * CPU Time - CPU가 특정 Job 하나를 처리하는데 걸린 시간이..

Computer Science/Computer Architectures

[Computer Architectures] Register Spilling | 레지스터 스필링

Register Spilling 레지스터 스필링 - 프로시저 A와 프로시저 B가 서로 같은 레지스터를 사용함에 따라 생기는 Register Corruption(레지스터 변형)을 방지하는 테크닉이다. - MIPS의 레지스터의 개수가 유한하다는 점에서 오는 한계점에 대한 솔루션이다. - Overwrite을 방지하기 위해 Callee측에서 자신이 사용할 Register들에 저장된 데이터을 Stack*에 저장한 후, Callee의 Task를 수행한다. - Callee가 Task를 끝마치면, Stack에 저장해놓은 데이터들을 다시 원래 자리의 레지스터에 옮기고 난 다음 Caller에게 제어권을 넘긴다. * Stack(스택) - LIFO구조의 D램 기반 메인 메모리의 일부이다. - \(\texttt{\$sp}\) ..

Computer Science/Computer Architectures

[Computer Architectures] MIPS Procedure Call | MIPS에서의 함수 호출

Architecture] MIPS Procedure Call MIPS에서의 함수 호출 - 함수 호출 명령은 Parameter(Argument, 매개변수)를 인터페이스로 하는 명령이다. - 함수와 함수끼리 제어권을 넘기는 것은 PC값이 변경되어 실행할 명령어의 위치가 변경됨을 의미한다. - 어셈블리 언어에서 함수를 호출한 후, 값을 리턴받고 제어권을 넘겨받는 개략적인 과정은 아래와 같다. (Caller는 다른 함수를 호출하는 주체가 되는 함수이며, Callee는 호출되는 함수이다.) 1. Callee가 접근 가능한 메모리 위치에 매개변수들을 위치시킨다. 2. Caller가 Callee에게 제어권을 넘긴다. (PC값이 Callee의 명령어를 가리키게 된다.) 3. Callee가 연산을 수행하기 위한 메모리 ..

lww7438
'Computer Science/Computer Architectures' 카테고리의 글 목록 (2 Page)