본문 바로가기

CS/컴퓨터구조

(26)
[컴퓨터구조] Instruction set(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Instruction Set 디자인에서 고려할 사항 Operation repertoire: 얼마나 많은 operation이 있나? 구성 및 복잡한 정도는 어떤가? Data Types Instruction formats: opcode 필드 길이, 주소의 개수( instruction에서 사용하는 주소: 3, 2, 1, 0 address ) Register Addressing modes CISC vs RISC Number of address 각각의 instuction에 몇 개의 address가 존재하는지를 결정할 수 있다. 현실에서 사용하는 대부분의 연산은 unary 또는 binary로 표현되므로 최소 2개의 operand을 위한..
[컴퓨터구조] I/O 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. External Devices 외부 기기는 외부 환경과 컴퓨터 사이에서 데이터를 전달할 때 사용되며, I/O 모듈의 링크를 통해 컴퓨터와 연결된다. 링크는 control, status, data을 외부 기기와 I/O 모듈 사이에서 교환하는 데 사용된다. Control: 디바이스가 수행할 기능. INPUT, READ, OUTPUT, WRITE 등 Status: 디바이스의 상태를 나타내는 정보. READY, NOT-READY 등 Data: I/O 모듈과 교환하는 비트 모음 이러한 외부 기기의 종류는 크게 3가지로 나눌 수 있다. Human Readable: 컴퓨터를 사용하는 유저와 소통하는데 사용. 프린터, 모니터 등 Machi..
[컴퓨터구조] External Memory(2) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Disk Array Disk Array는 가격이 저렴한 디스크 여러개를 하나의 큰 논리적 디스크처럼 사용하는 방식이다. 데이터는 여러개의 디스크에 분산되어 저장되며, 각 디스크는 독립적으로 I/O 작업이 가능하므로 전반적인 처리 속도가 빨라지는 장점이 존재한다. 위 표에 따르면 Disk Array 방식을 이용하는 경우 차지하는 공간, 파워, 전송율, 초당 처리율 및 가격 면에서 하나의 성능이 뛰어난 디스크를 사용하는 것에 비해 더 좋다는 것을 알 수 있다. 그러나 단순히 데이터를 분산하여 저장하기만 하는 방식은 하나의 디스크만 망가지더라도 연관된 모든 디스크가 영향을 받아 전체 데이터는 사용할 수 없게 되므로 위 그림 기준 ..
[컴퓨터구조] External Memory(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Magnetic Disk 디스크는 substrate라고 불리는 자성이 없는 판 위에 자성을 가진 물질을 코팅한 원형 플래터를 의미한다. 흔히 우리가 HDD라고 부르는 것이 마그네틱 디스크이며, 과거에는 알루미늄이나 알루미늄 합금 판을 이용했으나 최근에는 substrate로 유리를 사용한다고 한다. 유리로 substrate을 구성하는 경우의 장점 자화 물질을 판에 골고루 입혀서 디스크 신뢰성이 높아진다. 표면에 발생하는 결함을 줄여 R/W 에러 감소 헤더의 높이를 더 낮출 수 있어서 더 많은 데이터 삽입 가능 -> 가격 감소 간단한 동작 방식 하드 디스크는 자성을 이용하여 데이터를 읽고 쓴다. 전자기 유도 현상에 의해 자기장이..
[컴퓨터구조] Internal Memory(2) 현재 글은 이 글과 이어진다. Error Correction 메모리와 같은 반도체 장치들은 에러가 발생할 가능성을 가진다. 전송 과정에서 전자가 손실되는 경우 해당 에러를 수정하거나 최소한 에러가 발생했다는 사실을 알려야만 데이터를 유효한 상태로 유지할 수 있다. (하드웨어 공정에서 불순물로 결함이 발생하는 경우 최소한 어디서 결함이 발생하는지를 알아야 해당 영역의 메모리를 우회, 다른 영역에 연결하여 메모리 폐기율을 낮출 수 있을 것이다.) 에러는 2가지로 나뉜다. Hardware Failure: 영구적으로 발생하는 물리적 결함으로, 과전류 등 사용 환경에서의 문제, 제작 공정에서 발생한 결함 및 여러 번의 WRITE 동작에 의한 마모에 의해 발생할 수 있다. 메모리 셀이 특정한 값으로 고정되고 바뀌지..
[컴퓨터구조] Internal Memory(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 셀 우리가 메모리라고 부르는 "반도체" 기반 메모리들의 기본 단위는 셀이다. 셀은 1비트 데이터를 담는 가장 작은 저장 공간으로, 메모리의 종류와 공정에 따라 실제 구현은 다를 수 있으나 공통적인 특징이 있다. 0과 1로 표현될 수 있는 안정적인 상태를 (물리적으로) 가진다. 상태를 설정하기 위해 최소 1번 이상 내용을 쓸 수 있다. 현재 상태를 읽을 수 있다. 메모리의 특성에 따라 다를 수 있다고는 해도 각 셀은 이진수를 표현하기 때문에 최소한 이진수의 구성 요소인 0과 1을 구분하기 위한 물리적 상태가 요구된다. 각 상태의 특징이 전혀 없다면 0과 1을 구분하는 것은 불가능할 것이다. 메모리에 쓰는 동작은 메모리의 특성에..
[컴퓨터구조] 캐시(3) 현재 글은 이 글에서 이어진다. Line Size 캐시의 각 라인에는 데이터가 저장된다. 캐시의 용량이 일정할 때 라인의 크기를 키우면 라인의 개수는 감소하기 때문에 각 라인을 식별하기 위한 태그의 비중이 감소한다. 라인의 크기가 커지기 때문에 사용하는 데이터와 가까운 데이터를 한번에 많이 가질 수 있어 spatial locality 도 증가한다. 라인 크기를 키울 때 발생하는 장단점을 정리하면 다음과 같다. 장점 라인의 크기가 커져 주변 데이터를 좀 더 많이 가져오면서 spatial locality가 증가한다. 캐시 내 라인의 개수가 감소하므로 태그로 인한 오버헤드가 감소한다. 단점 Cache Pollution : 한번에 많은 데이터를 가져오다 보니 거의 사용되지 않는 데이터를 가져올 수도 있다. 라인..
[컴퓨터구조] 캐시(2) 현재 글은 이 글에서 이어진다. Replacement Algorithm 캐시의 크기는 메모리 용량의 0.1% 수준으로 새로운 데이터를 캐시에 들여놓기 위해서는 기존에 캐시 내에 존재하던 데이터를 캐시 밖으로 내보내야 한다. 이때 캐시 내 어떤 데이터가 먼저 대체되어야 하는지에 대한 규칙이 필요하며, 이를 위해 Replacement Algorithm이 존재한다. 캐시 매핑 방식에는 Direct, Fully Associative, Set Associative가 존재했다. 이때 Direct mapping 방식에서는 모듈러 연산에 의해 모든 데이터가 들어갈 캐시 상의 라인이 정해져 있으므로 어떤 데이터를 먼저 제거할지에 대해 고민할 필요가 없다. 대체 알고리즘은 Associative 방식들에 대해서만 필요하다...