C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[19194] CPU->어셈블리어->고급언어 까지....(2)
한수동 [hsd1987] 4409 읽음    2011-02-24 13:40
이글은 제가 배운것을 복습차 적은 것입니다
틀린 부분이 있을 수 밖에 없으며 있다면 지적해 주신다면 감사하겠습니다

일단 CPU의 방식 RISC 와 CISC를 좀더 알아보자,
RISC와 CISC를 나누는 방법은 바로 인스트럭션의 특징에 달려있습니다.
이를 위해 클럭이라는 개념을 살짝 아셔야 합니다.
무궁화 꽃이 피었습니다 라는 놀이를 아시나요?
술래가 무궁화 꽃이 피었습니다라는 말을 할때만 참가자들이 움직일 수 있고 술래가 돌아 봤을땐 모두가 멈춘 상태로 있어야 합니다
이것이 클럭입니다. 클럭이 인가될때만 CPU는 한단계를 수행하며 클럭이 인가 안될때는 멈춘 상태로 있습니다. (더자세한건 나중에)
그럼 한 클럭동안 수행하는 인스트럭션의 양이 얼마나 되까요?
CISC는 인스트럭션의 길이가 제각각입니다 즉 각 인스트럭션 마다 필요한 클럭수가 다릅니다.
RISC는 인스트럭션의 길이가 정해져 있습니다 즉 각 인스트럭션 마다 필요한 클럭수가 같습니다.(전부다는 아닙니다)
바로 둘에 차이는 인스트럭션 길이가 가변적이냐 고정적이냐라고 볼 수 있습니다.

그렇다면 CPU의 속도를 봅시다
CISC는 인스트럭션의 길이가 각자 다르므로 각 인스트럭션마다 속도가 다 다릅니다(클럭수가 많을 수록 느림)
거기다가 인스트럭션의 종류도 많습니다 따라서 복잡하고 하드웨어가 복잡해집니다. 이것은 물리적으로 여러 충돌이 있을 수 밖에 없고 짧은 인스트럭션도 느려지는 결과를 초래합니다.

RISC는 가장 필요한 명령만 조합하여 인스트럭션의 길이가 서로 같지만 길이가 최소한으로 되도록 구겨넣은 것입니다
즉 간결하며 하드웨어적으로도 간결합니다. 이는 한명령에 대해 CISC에 비해 인스트럭션을 여러번 실행하지만 결과적으로 빨라지는 것을 볼 수있습니다.
실제로도 인텔사는 초기에는 CISC방식을 고집하다 하드웨어적인 클럭속도 향상에 한계에 부딛히자 RISC방식을 혼용한 CPU를 만들고 있습니다.(하위 CPU와의 호환성을 위해 어쩔 수 없이 CISC방식을 혼용하는 것임)(언제나 돈이 문제)

자이제 인스트럭션이 뭔지 대충 감이 잡히셨습니까?
그럼 여기까지가 LV3입니다
좀더 궁금하다면 아래로....




이 레벨부터는 CPU의 원시적인 부분 부터 아셔야지 이해 하실 수 있기에 원시적인 곳 부터 나갑니다.
도대체 CPU가 뭐길래 인공지능도 아니면서 명령만 받으면 알아서 덧셈하고 뺄셈하고 그런 것일까?
필자는 이게 가장 궁금해왔습니다. 어떤 하드웨어적인 명령을 받으면 될까?

먼저 블랙박스라는 개념을 아셔야 합니다. 왜냐하면 자세한 것은 전기회로 전공을 하신 분이 아니라면 이해를 못하기 때문에 블랙박스 개념으로 대체 한다고 아시면 됩니다.
한쪽에 구멍이 두개 있고 반대쪽 면에 구멍이 한개있는 검은박스를 하나 생각해 봅시다.
속이 안보이기 때문에 안에서 무슨 짓을 하는지 알 수가 없습니다.
먼저 한쪽면에 있는 두개 구멍에 파란공과 흰공을 넣습니다.
그랬더니 반대쪽 면 한 구멍에서 하늘색공이 나왔습니다.
이게 어찌된 일일까요? 아실 필요 없습니다.
이게 블랙박스입니다. 안에서 무엇을 하는지 알 수 없지만 일단 앞에 두구멍에 두가지 색깔의 공을 넣으면 반대쪽에서 두 색깔이 합해진 색이 나온다는 것 이것만 아시면 됩니다.

그럼 이 블랙박스를 적용하여 몇가지 박스를 만들어 봅시다.
만들 박스는 다음과 같습니다. AND박스, OR박스, NOT박스 이렇게 3가지 입니다. 많이 익숙한 표현이죠? 아시는 것과 마찬가지로 AND 박스는 입력이 2개 출력이 1개입니다
입력이 참과 참일때만 참을 내놓고 나머지는 거짓을 내놓습니다.
OR박스는 입력이 2개 출력이 1개입니다.
AND박스와는 반대로 입력이 거짓과 거짓일때만 거짓을 내놓고 나머지는 참을 내놓습니다.
NOT박스는 입력이 1개 출력이 1개입니다.
출력은 입력의 반대값을 내놓습니다.

각자 박스가 무슨 연산을 하는지는 알지만 도대체 안에서 무슨 짓을 하길래 그런 연산이 되는지 아실 필요는 없다는 것입니다. 전부 전기회로적으로 소자(전기부품)를 조합하여 두 입력 구멍에 전기를 인가하면 나머지 한구멍에서 결과 값 즉 전기 신호를 보내도록 만들어진 것입니다. 이런 자세한 것 까지 아시고 싶다면 일단 공과대학을 한번 더 전공 하셔야 합니다.(트랜지스터, 다이오드 등등의 소자의 특성을 아셔야합니다)(회로이론과 전자공학 두가지 책을 공부하시면 됩니다)

위에서 말한 3가지 박스는 CPU를 이루는 가장 기초적인 박스 들이며 이 3가지만으로 CPU를 만드는 것입니다.
자 이제 박스라는 표현을 버리고 게이트라는 표현을 합시다. 실제로 위 3가지 박스들은 각각 AND게이트, OR게이트, NOT게이트 라고 불립니다.
그리고 추가적으로 NAND와 NOR게이트가 있는데 이 게이트 들은 간단합니다
AND게이트 출력에 NOT게이트를 붙이면 NAND게이트,
OR게이트 출력에 NOT게이트를 붙이면 NOR게이트가 됩니다.
이 게이트들이 모여 모듈을 만드는데 이 모듈 종류에는 여러분들이 잘 아는 덧셈모듈 XOR모듈이 있고 또 중요한 모듈중 하나로 MUX도 있습니다. MUX는 여러가지 갯수의 입력이 들어오면 선택신호에 따라 여러가지 입력중 하나를 선택하여 출력으로 보내주는 선택자 역활을 하는 모듈입니다.
이 모듈들을 조합하여 ALU라는 연산 장치를 만들 수 있는데 이것이 바로CPU의 연산장치인 것입니다.
또한 CPU에는 레지스터라는 저장장치가 있습니다. 저장장치는 어떻게 만드는 것이냐하면
이 역시도 3가지 게이트들의 조합으로 만들어 집니다. 이 조합으로 만들어진 것을 플립플롭이라고 하는데 이것들이 모여 레지스터를 이룹니다. 그럼 CPU는 레지스터, ALU 이두가지만으로 돌아가느냐? 아닙니다.

잠깐 여기서 멈추고 돌아봅시다 제가 지금까지 설명한 것이 너무 두루뭉실 하다고 느끼십니까? 도대체 어떻게 게이트들을 조합하여 ALU를 만들고 플립플롭을 만드는지 왜 안 가르켜 주냐구요? 이유는 하나입니다. 알려드릴께 너무 많습니다.
그래서 나중에 높은 레벨에서 알려 드리겠습니다.

여기까지 LV4 다음글에서... 뵈요.
Lyn [tohnokanna]   2011-02-24 14:14 X
머... 현실적으로는 NAND 나 NOR 게이트로 반도체를 구성하는경우가 많은..
한수동 [hsd1987]   2011-02-24 14:39 X
제가 해깔려서 안적었는데요 NAND 랑 NOR도 게이트라 부르는지 모듈이라 부르는지 해깔려서요.
게이트인가 보네요... 그렇다면 포함 시키겠습니다 하지만 해깔리시는 분을 위해 말씀드리겠습니다
NAND랑 NOR도 위 3가지 기초 게이트의 조합으로 만들어진 게이트입니다.
NAND는 AND게이트 출력에 NOT게이트를 붙인것을, NOR는 OR게이트 출력값에 NOT게이트를 붙인것을 말합니다.
Nibble [gameover]   2011-02-25 11:17 X
CISC vs RISC 에서 CISC는 instruction 을 해석하기 위한 micro processor를 내장하게 됩니다. 이는 유지보수,기능추가를 쉽게 해 주는데요. RISC의 hard-wired 설계와 대비됩니다. 굳이 구구절절히 설명드리기엔 귀찮고... 위에 정리된 내용만으로는 구분력이 약하네요. 찾아보심이 좋을듯. RISC, CISC, ALU, CC, CU, FPU, CPU 와 같은 약자들의 본디말도 무척 중요합니다. ALU에서 CPU로 바로 가는 비약이 존재하네요. 최소한, CU는 포함이 되어야 합니다.

+ -

관련 글 리스트
19194 CPU->어셈블리어->고급언어 까지....(2) 한수동 4409 2011/02/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.