[컴퓨터 구조] 기억장치의 분류와 특성, 계층적 기억장치 시스템
·
CS/컴퓨터 구조
오늘은 프로그램과 데이터를 저장하기 위한 장치인 기억장치에 대해 알아보겠습니다.1. 기억장치의 분류와 특성1) 액세스(access)의 종류와 그에 따른 기억장치 분류CPU가 어떤 정보를 기억장치에 쓰거나 기억장치로부터 읽는 동작을 액세스(access)한다고 합니다. 기억장치는 제조 공정과 재료 및 조직에 따라 액세스 하는 방법도 달라지는데 그에따른 유형과 분류에 대해 알아보겠습니다.액세스(access): 기억장치에 대한 읽기 및 쓰기 동작1.1) 순차적 액세스(sequential access)저장되는 모든 정보는 레코드라고 불리는 정보 단위로 분리되어 저장되고, 각 레코드는 고유의 주소를 가집니다.순차적 액세스는 저장된 정보 즉 레코드를 처음부터 순서대로 액세스 합니다. 임의의 위치에 저장된 특정 정보를..
[컴퓨터 구조] 제어유니트(Control Unit)와 마이크로프로그램
·
CS/컴퓨터 구조
오늘은 CPU의 구성요소 중 하나인 제어유니트와 마이크로프로그램에 대해서 알아보겠습니다.1. 제어유니트1) 제어 유니트의 기능CPU가 실행하는 기계명령어들을 인출하여 해독하고 실행하는 과정이 순차적으로 발생되기 위해서는, 적절한 제어 신호들이 생성되어 해당 하드웨어 모듈로 보내져야 합니다. CPU의 구성요소인 제어 유니트가 이러한 역할을 담당하고 있습니다.제어 유니트가 수행하는 주요 기능들은 다음과 같습니다.명령어 코드의 해독명령어 실행에 필요한 제어 신호들의 발생제어 유니트는 컴퓨터 프로그램을 구성하고 있는 명령어들을 해독(decode)하고 그 결과에 따라 명령어 실행에 필요한 동작들을 수행시키기 위한 제어 신호를 발생하는 장치입니다. 다시말해 명령어 사이클이 적절히 수행되도록 모든 동작을 제어하는 장..
[컴퓨터 구조] 부동소수점 수의 표현과 산술연산
·
CS/컴퓨터 구조
산술과 논리연산의 마지막 파트인 부동소수점 수의 표현과 산술연산 방법에 대해서 알아보겠습니다.1. 부동소수점 수의 표현1) 부동소수점 수아주 큰 수나 아주 작은 수를 표현할 때 부동소수점 수를 사용합니다.10진수의 수로 예를들어 보겠습니다. 아주 큰 수 $274,000,000,000,000$는 $2.74\times10^{14}$ 아주 작은 수 $0.00000000000274$는 $2.74\times10^{-12}$로 나타낼 수 있습니다. 이 방법은 10진 소수점의 위치를 적절히 이동시키고, 소수점의 위치는 지수를 이용하여 표시하는것입니다.이와 같이 소수점의 위치를 필요에 따라 이동시키는 표현방법을 부동소수점 표현이라고 하며, 그와 같이 표현된 수를 부동소수점 수라고 부릅니다. 일반적인 형태는 다음과 같습..
[컴퓨터 구조] 정수의 산술 연산
·
CS/컴퓨터 구조
오늘은 컴퓨터가 2의 보수 표현에 대한 일반적인 산술 방법과 연산을 처리하는 과정을 알아보겠습니다.1. 덧셈1) 덧셈2의 보수로 표현된 수들 간의 덧셈 방법은 먼저 두 수를 더하고, 만약 올림수가 발생하면 버리는 것 입니다.만약 덧셈 결과값의 부호가 1이라면, 그 값은 2의 보수로 표현된 음수를 나타냅니다. 2) 병렬가산기 위의 그림은 덧셈을 수행하는 하드웨어인 병렬 가산기 입니다.병렬 가산기는 데이트 비트 수만큼의 전가산기들로 구성됩니다. 전가산기들은 올림수 비트를 전송하는 선에 의해 연결되는데, 하위 단계의 전기산기에서 발생한 올림수가 상위 단계 전가산기의 올림수 입력으로 들어갑니다.그림은 4비트 데이터 A와 B를 더하여 합 S를 출력하는 과정을 보여줍니다. 점선으로 표시된 부분이 병렬 가산기이며 나..
[컴퓨터 구조] 시프트 연산
·
CS/컴퓨터 구조
오늘은 ALU가 수행하는 기본적인 연산 중 하나인 시프트연산과 그 종류에 대해서 알아보겠습니다.1. 논리적 시프트논리적 시프트 연산이란 레지스터 내의 데이터 비트들을 왼쪽 혹은 오른쪽으로 한 칸씩 이동시키는 것을 말합니다.예시를 보겠습니다. 위의 그림은 좌측-시프트연산(shift-left) 수행을 보여주고 있습니다.비트들을 왼쪽으로 한 칸씩 이동하고, 맨 우측 비트로는 0이 들어오는것을 확인할 수 있습니다.0100 비트에 좌측-시프트 연산을 수행하면 1000이 되어 2를 곱한 결과가 됩니다. 반대 방향인 우측-시프트(shift-right) 연산에서는 최상위 비트에 0이 들어오고, 모든 비트들이 우측으로 한칸씩 이동합니다.최하위 비트는 버리게 됩니다. 이 경우에는 0100이 0010이 되어 원래의 수를 ..
[컴퓨터 구조] 논리연산
·
CS/컴퓨터 구조
오늘은 ALU가 수행하는 기본적인 연산 중 하나인 논리연산에 대해서 알아보겠습니다.1. 논리연산1) 논리연산 개요컴퓨터가 처리하는 데이터의 형태들 중에서 수를 나타내는 데이터는 단어 단위로 취급됩니다. 만약 데이터가 16비트라면 모든 산술적 연산은 16비트 단위로 수행됩니다.논리적데이터에서는 단어 내의 각 비트 단위로 의미를 가지며, 연산도 비트 단위로 처리됩니다.n-비트 데이터들에 대하여 논리연산을 수행하는 장치는 모듈을 n개 이용하여 구성할 수 있습니다.  각 논리 모듈로는 두 단어에서 같은 위치에 있는 비트들이 입력되며, 어떤 연산을 수행할지 선택하는 S1과 S2는 모든 모듈들에 공통으로 인가됩니다. 논리연산에서는 대응되는 비트들 간에 독립적으로 연산이 수행되므로, 모듈간의 데이터 전송 통로는 필요..
[컴퓨터 구조] 산술논리연산장치(ALU)의 구성요소와 정수의 표현
·
CS/컴퓨터 구조
오늘은 산술논리연산장치의 구성요소를 간략하게 알아보고 연산에 사용되는 정수들이 어떤식으로 표현되는지를 알아보겠습니다.1. 산술논리연산장치(ALU)1) 산술논리연산장치(ALU) 개요산술논리연산장치는 산술적 계산과 논리 데이터에 대한 연산을 수행합니다. 산술적 계산은 일반적으로 정수(integer)와 부동소수점 수(floating-point number)라는 두 가지 형태의 수들에 대하여 수행되며, 논리 연산은 0과 1의 배열로 표현되는 2진데이터(binary data)에 대하여 이루어집니다.컴퓨터 시스템의 다른 요소들인 제어 유니트, 레지스터, 기억장치 및 I/O장치는 사실상 ALU에 의해 처리될 데이터를 가져오거나 그 결과를 저장하고 출력시키는 역할을 할 뿐입니다. 산술논리연산장치(ALU): CPU 내부..
[컴퓨터 구조] 상용 프로세서들의 명령어 형식
·
CS/컴퓨터 구조
오늘은 상용 프로세서들의 명령어 형식에 대해 알아보겠습니다.1. CICS와 RISC컴퓨터가 발전하면서 명령어의 종류와 길이가 계속 증가했으며, 주소지정 방식도 더욱 복잡해졌습니다. 그로 인한 회로 복잡도 증가 및 성능 한계를 극복하는 방법도 등장했습니다. CICS 프로세서와 RISC 프로세서를 통해 이를 알아보겠습니다.1) CICS(Complex Instruction Set Computer)CISC는 복잡하고 다양한 명령어 형식을 가진 프로세서 입니다. 명령어의 길이가 가변적으로, 만약 데이터나 주소값이 필요하다면 명령어 길이를 늘려 해결합니다. 자주 보이는 x86, x86-64, AMD64가 CISC를 채택하고 있는 대표적인 아키텍처 입니다.CISC의 장점과 단점을 알아보겠습니다.CISC 장점적은수의 ..