본문 바로가기

IT/컴퓨터구조7

[ 컴퓨터구조 ] Cache Cache 순서 1. Cache 설명, 용어 2. Cache 구성 3. Indexing 4. Block offset 5. Tag 6. Tag matching + Write-back, Write-through Cache 란? Memory에 접근하는 것은 느리다. Processor가 연산하는 것이 훨씬 빠르다. 그래서 Memory에서 data를 읽고 쓰기 위해 access하는 성능이 느려서, 그동안 Processor는 놀고 있게 된다. Processor는 비싼 장비이니 최대한 써먹어야 한다. 따라서 자주 사용하는 데이터는 Memory까지 가지 말고 Processor 안에 미리 가져옴(Prefetching)와서 사용함으로써 Processor가 계속 바쁘게 돌아갈 수 있게 만드는 기술이다. 즉, Memory에 .. 2020. 12. 9.
[ 컴퓨터구조 ] MIPS Design Principles MIPS Design Principles 하드웨어 설계 원칙 1. Simplicity favors regularity 간단해지기 위해서 같은 형태를 사용하는 것이 좋다. (Operation 글) - Arthmetic Operation은 동일한 형태를 지닌다. - 고정된 instuction의 size - instruction formats의 small number - Opcode는 항상 6bit로 이루어진다. 2. Smaller is faster 적을수록 더 빠르다. (Operands 글) - 적은 수의 register, 적은 수의 instruction set을 가짐으로써 빠르고 작게 구현 - 제한된 addressing modes의 수 3. Make the common case fast 자주 생기는 일을 .. 2020. 10. 22.
[ 컴퓨터구조 ] MIPS Instructions (+Instruction to binary) MIPS Instructions (+Instruction to binary) MIPS instruction의 종류와 instruction이 어떻게 binary code로 바뀌는지 살펴보자. 사람과 컴퓨터는 소통해야 한다. 소통하는 과정은 크게 3가지로 볼 수 있다. High-Level Language ( C언어 ) 가 compiler를 통해 MIPS Assembly Language로 변환되고, Assembler를 통해 기계가 이해할 수 있는 Binary machine Language로 변환된다. 여기서 MIPS Assembly Language 단계에서 예를 하나 들어보자. add $t0, $s1, $s2 $s1 과 $s2 를 더해 $t0 에 저장하라는 뜻이다. 이것은 하나의 명령어, 즉 하나의 instr.. 2020. 10. 22.
[ 컴퓨터구조 ] ISA (Instruction Set Architecture) ISA (Instruction Set Architecture) ISA란? 하드웨어와 소프트웨어 사이의 Interface를 정의하는 것. 하드웨어와 프로그램 사이의 매개체 역할을 하는 것이다. ISA는 많다 세상에는 많은 ISA가 있다. 칩을 만드는 회사마다 ISA의 종류가 다르다. 회사마다 자신만의 ISA를 가지고 있는 것이다. 흔히 쓰이는 랩탑, 데스크탑, 심지어 서버 컴퓨터까지 전부 Intel, AMD 프로세서를 쓰는 아키텍처를 쓰고 있는데, 이 회사에서는 x86 ISA를 가지고 있다고 얘기를 한다. 그 외에 스마트폰에 쓰이는 ARM 프로세서가 있다. 이 x86과 ARM은 서로 다른 ISA라고 말할 수 있다. 즉, 데스크탑과 스마트폰은 다른 ISA를 가지고 있다고 말할 수 있다. 이것은 이렇게 말할 .. 2020. 9. 1.
[ 컴퓨터구조 ] 피연산자 (Operands of Computer Hardware) 피연산자 (Operands of Computer Hardware) 우선 알아둬야 할 것이, CPU에서 Memory로 접근하는 것보다 register로 접근하는 것이 훨씬 빠르다는 것을 알고 있어야 한다. Register Operands 이전 글(Operation)에서 연산 instructions은 register operands를 사용했다. (memory가 아닌 register임에 주목하자) register는 프로세서 내부적으로 관리하는 저장공간으로, 데이터를 담을 수 있는 가장 기본적인 단위이다. 현대 레지스터의 크기는 일반적으로 32bit이다. 0~31로 번호가 매겨져있다. 이 32bit의 data는 "word"라고 불려진다. - $t0, $t1, $t2, ... ,$t9 는 임시 값들이다. - $s.. 2020. 5. 1.
[ 컴퓨터 구조 ] 하드웨어 연산 (Operation of Computer Hardware) 하드웨어 연산 (Operation of Computer Hardware) 하드웨어 설계의 3대 원칙이 있다. 이것은 차차 알아가보도록 하겠다. 산술 연산 (Arithmetic Operations) add와 sub, 그리고 3개의 operands(a, b, c)가 존재한다. operands에는 두개의 source(b, c)와 한개의 destination(a)이 존재한다. 모든 산술 연산은 이러한 형태를 가지고 있다. 이렇게 모든 명령어가 operand를 3개씩 갖도록 제한하는 것은 하드웨어를 단순하게 할 수 있다. 여기에서 하드웨어 설계 원칙 중 첫번째를 알 수 있다. Design Principle 1 : Simplicity favors regularity 간단하게 하기 위해서 같은 형태를 사용하는 것이 .. 2020. 5. 1.
[ 컴퓨터 구조 ] Floating Point Floating Point 정수형 표현이 아닌, 실수형 표현을 컴퓨터는 어떻게 하는지 알아보자. 실수형 표현은 정수와는 달리, 매우 크거나 매우 작은 수를 표현해야 한다. 그에 따른 규칙들이 존재한다. normalized - 소수점 앞의 수는 1자리 수여야 한다. - 소수점 바로 앞 1자리 수는 1~9사이의 값이어야 한다. - 뒤에 곱해지는 형태는 지수형태여야 한다. ex) -2.34 * 10^56 => normalized +987.02 * 10^9 => not normalized (소수점 앞 수가 3자리이기 때문) +0.0002 * 10^-4 => not normalized (소수점 앞 수가 0이기 때문) Floating 수를 표현하기 위해서 지수부분은 소수점 기준으로 양수, 음수가 나뉘게 된다. ex.. 2020. 4. 28.