본문 바로가기
반응형

IT 이론/컴퓨터구조19

RAID0부터 RAID7까지. 모든 RAID구성을 알아보자 ※ 본 포스팅에선 거의 쓰이지 않는 레이드까지도 모두 망라하였다. 정보처리 기사 수준에서 주로 쓰이는 RAID만 알고 싶다면 여기를 클릭해서 간단한 내용만 보자. RAID는 여러개의 하드디스크를 함께 사용하는 방식을 말한다. 속도를 위해 함께 사용 할 수도 있고 안정선을 위해 함께 사용 할 수도 있고 둘다를 추구할 수도 있다. 정말 많은 방식의 RAID가 있지만 대표적으로 쓰이는 몇가지만 알아보자 RAID-0 : Striped disk array without fault tolerance 속도 추구만을 위한 레이드 구성이다. 단순히 하드 여러개에 데이터를 분산시켜서 한꺼번에 입출력을 수행하는 것이다. 이를 스트라이핑(Disk striping) 기술이라고 한다. 예를 들면 1~10까지의 숫자를 저장하는데,.. 2018. 1. 23.
음수 표현을 위한 보수법과 보수를 이용한 뺄셈⑵ 앞선 포스팅에서 10진수의 보수 연산을 보았다. 그런데 그닥 편해 보이지도 않았고 뺄샘을 쉽게 하기 위한 연산인데 보수를 구하기 위해 뺄샘을 해야 한다는 게 아이러니 했다. 그리고 왜 굳이 10(n)의 보수와 9(n-1)의 보수를 구분해서 사용하는 지도 이해가 되지 않았다. 이번에는 2진수의 보수 연산을 보며 이 궁금증을 풀어 보자. 101011의 보수를 구해 보자. 2진수에선 2의 보수와 1의 보수가 있다고 하였다. 1의 보수 111111 - 101011 = 010100 ※ 1의 보수는 그냥 각 자리를 반전시켜 버리면 된다. 2의 보수 1000000 - 101011 = 010101 ※ 2의 보수는 1의 보수에 1만 더해주면 된다. 10진법 보수 연산과의 차이점이 보이는가? 뺄샘이 필요가 없다! 컴퓨터 .. 2016. 10. 13.
음수 표현을 위한 보수법과 보수를 이용한 뺄셈⒧ 이해를 돕기 위해 10진법과 2진법에 대해서만 보자 10진법에는 10의 보수와 9의 보수가 있고 2진법에는 2의 보수와 1의 보수가 있다. 이렇게 각 n진법에는 n의 보수와 n-1의 보수가 주로 사용된다. n의 보수를 구하기 위해선 주어진 숫자의 자릿수 만큼 0을 채우고 가장 왼쪽에 1을 추가하여 기준을 만든다. n-1의 보수를 구하기 위해선 주어진 숫자의 자릿수 만큼 9를 채워 기준을 만든다. 그리고 기준값에서 주어진 숫자를 뺀다. 아래 예를 보자 48의 10의 보수는 100 - 48 = 52 48의 9의 보수는 99 - 48 = 51 그럼 이런 보수는 왜 구하는 것일까? 컴퓨터에서 뺄셈 연산을 하기 위해서이다. 90 - 48 이라는 연산을 한다고 생각해 보자. 물론 감산기를 이용해서 실제 뺄셈 연산을.. 2016. 10. 13.
IEEE 754 부동 소수점 표현의 이해 -118.625 를 2진수로 나타내려면 어떻게 해야 할까? 단순히 아래와 같은 표현을 생각해 볼 수 있겠다. -1110110.101 이렇게 표현하면 어떤 실수도 제한 없이 표현 가능하다. 하지만 부호는 어떻게 표현할 것이며 소수점의 위치는 어떻게 나타낼 것인가? 그리고 컴퓨터에서 변수들 생성할 때는 메모리 할당을 위해 고정된 크기로 생성해야 한다. 그렇다면 어디까지를 정수에 할당하고 어디까지를 소수에 할당할 것인가? 이런 고민들에 표준을 제시한 것이 IEEE 754 이다. IEEE 754 에선 지수부와 가수부 라는 표현을 사용한다. -118.625 를 -1.18625 × 10의 2승 이라고 표현하는 것이다. 2진수로 나타내면 -1.110110101 × 2의 6승이다. 정수는 가장 앞의 한 자리만 남도록 .. 2016. 10. 12.
카르노맵 문제 풀기 가장 많이 나오는 문제는 카르노맵을 주고 식을 도출해내는 문제이다. 역으로 식을 주고 카르노맵을 그리는 문제도 나오지만 둘중 하나만 이해해도 카르노맵과 관련된 문제는 다 풀 수 있다. 우선은 카르노맵을 식으로 풀어내는 것만 보자. 아래 3가지는 꼭 기억하고 넘어가야 한다. 1) 카르노맵의 가로축은 00 01 11 10 순서이다. * 그레이코드를 이용한 것인데 혹시 그려야 될 경우도 있기 때문에 언급해 둔다. 2) 카르노맵의 맨 좌측과 우측은 지구본 처럼 이어진다. 반지처럼, 밴드처럼 이어져 있다. 3) 2의 승수로 같은 값이 연속될 경우에만 묶을 수 있다. 말이 어려워 보여도 굳이 이해하려고 애쓰지 말자. 위 공식을 보면서 아래 예제만 몇개 풀어보면 된다. 이렇게 묶어주면 된다. 2개 또는 4개 단위로 .. 2016. 10. 12.
전자계산기 구조 계산 문제 명령 사이클 시간 1클록 = 1머신 스테이트 머신 사이클 = n머신 스테이트 명령 사이클 = n머신 사이클 Q. 하나의 명령 사이클을 실행하는데 2개의 머신 사이클이 필요하고 각각 머신 사이클은 5개의 머신 스테이트로 구성되어 있고 CPU 클록 주파수는 10MHz일때 하나의 명령 사이클을 실행하는데 걸리는 시간은? 2×5x(1/10,000,000) = 1/1,000,000 = 1µs 인스트럭션의 성능 수행시간 / (페치시간 + 준비시간) Q. 인스트럭션 수행 시간이 10ns 이고, 인스트럭션 페치 시간이 5ns, 인스트럭션 준비 시간이 3ns라면 인스트럭션의 성능은? 10 / (5+3) = 1.25 버스의 대역폭 버스 클록(Hz) × 버스의 폭(bit) Q. 버스 클록이 2.5GHz이고, 데이터 버스의 .. 2016. 10. 11.
반가산기(Half-adder)와 전가산기(Full-adder) 반가산기란 두 개의 비트를 더하여 합(sum)과 올림자(carry)를 구하는 것이다. 머리 속으로 구현해 보자. 0+0=0 0+1=1 1+0=1 이까지만 보면 마치 OR연산자로 처리될 것 같지만 문제는 이거다. 1+1=0 두 비트가 모두 1일 때 결과는 10이 되어야 한다. 올림자(Carry)가 1이 되고 합(sum)은 0이 돼야 하는 것이다. 기초를 제대로 공부 했다면 아래와 같은 연산 결과를 가지는 연산자를 바로 알아챌 수 있을 것이다. 0 0 → 0 0 1 → 1 1 0 → 1 1 1 → 0 바로 XOR 이다. XOR이 있기 때문에 합(sum)은 의외로 간단하게 구현된다. 올림자(carry)는 더 쉽다. 위에서 보았듯이 둘다 1일 때만 1을 반환하면 된다. 그냥 AND연산자 하나면 쉽게 해결되는 것.. 2016. 10. 9.
인터럽트(Interrupt)의 개념과 종류 인터럽트는 컴퓨터 구조에서 CPU의 활동에 많은 영향을 끼치는 중요한 개념이다. 어느 전산 시험, 어느 회차에서도 관련 문제가 꼭 등장하므로 인터럽트에 대해서만 확실히 이해하고 가도 몇 문제는 더 풀 수 있을 정도이다. 인터럽트란 사전적 의미로는 '끼어들다', '중단시키다' 정도의 의미를 가진 말로 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다. 인터럽트의 종류인터럽트의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 나뉠 수 있다. 외부 인터럽트전원 이상 인터럽트(Power fail interrupt) : 말그대로 정전, 파워 이상 등기계 착오 인터럽트(Machine check .. 2016. 10. 9.
명령어의 형식과 주소 지정방식 CPU구조는 기준에 따라 다양하게 분류될 수 있지만 명령어 처리방식을 기준으로 나누면 '단일누산기구조', '범용레지스터구조', '스택구조' 로 나눌 수 있다. 이런 분류는 명령어의 형태에 따라 나뉜다. CPU에게 있어서 명령어란 마이크로 오퍼레이션에 의해 수행되는 하나의 명령을 말한다. 명령어는 아래와 같이 4가지 형식으로 나뉜다. 명령어의 형식(구조) 1) 0-주소 구조 연산코드(Operation code)부 명령어는 보통 연산코드(OP-code)부와 자료(Operand)부(주소부라고도 한다)로 나뉘나 0-명령어 형식에선 자료가 없고 오로지 연산코드 밖에 없다. 이런 명령어는 스택구조에서 사용된다. 우리가 알고 있는 후위식으로 된 연산대상을 하나씩 Push, Pop해가며 연산이 이루어지는 것이다. 스택.. 2016. 10. 8.
마이크로 오퍼레이션 사이클 타임(Micro operation cycle time) 마이크로 사이클 타임과 CPU클럭 주기의 관계에 따라 3가지로 구분 된다. 1. 동기 고정식(Synchronous Fixed)CPU clock 주기를 Micro cycle time과 같도록 맞춘다. 실제 Micro operation의 수행 시간은 다르므로 CPU clock과 같도록 맞추려면 Micro operation 중 가장 수행시간이 긴 것과 맞춰야 한다.예를 들어 여러 Micro operation의 수행시간이 1, 5, 2, 4, 6, 3 등으로 서로 다르다면 Cycle time은 6으로 맞추어야 한다. 최소값이 1이나 평균값인 3정도로 맞춘다면 수행시간이 6인 Micro operation은 수행될 수 없기 때문이다. 보다 시피 구현은 무척이나 간단하다. 그리고 Micro operation의 수행시.. 2016. 10. 8.
Instruction Set Architecture : RISC와 CISC RISC와 CISC는 개념만 알면 쉽게 구분할 수 있다. RISC의 R은 Reduced이고 CISC의 C는 Complex이다. RISC는 간단한 명령어를 많이 사용해서 명령을 처리하는 프로세서이고 CISC는 복잡한 명령어를 조금 사용해서 명령을 처리하는 프로세서이다. 장단점이 있을 수 있다. 아래 비교 내용을 보면서 그 장단점을 파악해 보자. Reduced Instruction Set Computer (RISC)- 간단한 명령어의 집합으로 이루어져 있다.- 명령어들의 동작이 간단하다- 프로그램을 작성하는데 많은 명령어 사용- 모든 CISC명령은 RISC 명령 조합으로 만들어 낼 수 있다.- CISC명령어 하나 수행할 시간에 몇배의 명령을 실행 할 수 있다.- 호환성이 떨어진다.- 명령어 하나당 하나의 연.. 2015. 10. 20.
BCD코드와 3초과(Excess-3) 코드 BCD 코드는 Binary-coded decimal code라는 뜻이다. 뜻을 보면 알겠지만 BCD는 그냥 BCD이지 BCD 코드라는 말은 쓰지 않는다. 여튼 BCD는 말 그대로 2진수로 표현한 10진수라는 말이다. 11을 2진수로 표기 하려면 1011이라고 표현하는게 일반적인 2진수이지만, 11을 BCD로 표현하면 0001 0001 이다. 이렇게 각 자리의 10진수를 각각 4bit의 2진수로 표현하는게 BCD인 것이다. 8, 4, 2, 1로 이루어진 4bit의 2진수열을 사용하므로 8421코드라도로 불린다. 28192을 BCD로 표현하면? 0010 1000 0001 1001 0010 이 될것이다. 이렇게 10진수를 표현 하는데는 최고다. 아주 옛날 컴퓨터에서 10진수를 편하게 입출력 하기 위해 쓰였다... 2015. 10. 20.
그레이 코드(Gray code)를 사용하는 이유? 이론적으로 암기한 그레이 코드. 어떻게 만드는지는 알겠지만 왜 이걸 쓰는지 이해가 안갈 수도 있다. 이는 그레이 코드를 죽 나열해 보면 이해하기가 쉬울 것이다. 10진수 2진수 그레이코드 1 00001 00001 2 00010 00011 3 00011 00010 4 00100 00110 5 00101 00111 6 00110 00101 7 00111 00100 8 01000 01100 9 01001 01101 그레이코드의 특징이 보이는가? 2진수와 달리 그레이 코드는 신기하게도 앞의 수와 뒤의 수가 딱 1비트씩 밖에 차이가 안난다. 2진수는 숫자가 커지면 1이 증가함에도 여러개의 비트가 동시가 바뀌어야 하는데 그레이코드는 순차적인 진행이라면 항상 한 비트씩만 바꾸면 되는 것이다. 이런식의 특징은 순차적으.. 2015. 10. 17.
중앙처리장치(CPU)의 구성과 레지스터 CPU는 제어장치와 연산장치로 구성되어 있다. 제어장치 (CU : Control Unit) 명령을 꺼내서 해독하고, 시스템 전체에 지시 신호를 내는 것 (제어기능)메모리 주소 레지스터(MAR) : 주기억장치내에 출입하는 데이터의 번지를 기억메모리 버퍼 레지스터(MBR) : 주기억장치내에 출입하는 데이터가 잠시 저장프로그램 카운터(PC : Program Counter) : 다음에 실행할 명령어들의 번지를 보관명령 레지스터(IR : Instruction Register) : 현재 실행중인 명령어를 임시 보관명령 해독기(Decoder) : 명령 레지스터에 있는 명령을 해독하는 회로부호기(Encoder) : 해독된 명령어를 신호로 생성하는 회로번지 레지스터(Address Register) : 주기억장치의 번지를.. 2014. 5. 24.
[전자계산기구조] 다중처리기 - 수행속도의 성능 개선이 목적이다. - 하나의 복합적인 운영체제에 의하여 전체 시스템이 제어된다. - 프로세서들 중 하나가 고장나도 다른 프로세서들에 의해 고장난 프로세서의 작업을 대신 수행하는 장애 극복이 가능하다. - 다중처리기는 강 결합 시스템으로 2개 이상의 프로세서를 포함한다. - 다중처리기는 기억장치와 입출력 채널, 주변장치들을 공유한다. - 프로세서들 간의 통신은 공유 기억장치를 통해서 이루어진다. 2014. 5. 24.
[전자계산기구조] 메이저 스테이트(Major State) 메이저 스테이트는 현재 CPU가 무엇을 하고 있는가를 나타내는 상태이다.Fetch, Indirect, Execute, Interrupt 4가지가 있다. ↗ Fetch명령어를 메모리에서 CPU 레지스터로 가져와서 해독한다. ↘↖ Interrupt 인터럽트 후에는 무조건 Fetch로 간다. ↑↓ Indirect Fetch에서 해석된 주소가 간접 주소인 경우 유효 주소를 계산한다. ↖ ExecuteFetch에서 해석한 명령을 실행한다.Interrupt 요청 신호가 없으면 Fetch ↙ 2014. 5. 24.
[전자계산기구조] 명령어 형식 명령어의 형식에는 네 가지가 있다. - 3주소 명령어(3 Address Instruction) - 2주소 명령어(2 Address Instruction) - 1주소 명령어(1 Address Instruction) - 0주소 명령어(0 Address Instruction) 모든 명령어는 기본적으로 Op-code 1개를 가지며, 각 이름에 명시된 갯수만큼의 Operand를 갖는다. 예를 들어 3주소 명령어는 아래와 같다. Op-Code Operand1 Operand2 Operand3 Operand의 수에 따라 장단점이 있다. Operand의 수가 많을 수록 기능성이 증대되는 대신 속도가 느려진다. 1. 3주소 명령어 - 연산시 결과값이 파괴되지 않는다. - 프로그램의 길이를 줄일 수 있다. - 주기억장치 접.. 2014. 5. 24.
[전자계산기구조] 조합논리회로와 순서논리회로 조합논리회로 : 이전 값과 무관하게 현재 들어오는 값만 고려하여 결과를 출력하는 회로ex) 가산기, 감산기, 인코더, 디코더, 비교기 등 순서논리회로 : 이전 값과 현재 들어오는 ㄱ밧을 고려하여 그 값을 변경하거나 유지하는 회로ex) 플립플롭, 카운터, 레지스터, RAM, CPU등 2014. 5. 24.
반응형