PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2010/10/25 17:04:21
Name 레필리아
Subject 계층적 설계? 무슨 말인가요?

컴퓨터 공학을 전공하고 있는 학부생입니다.
오늘 시험이 끝났는데 내일 까지 제출해야 하는 레포트가 있네요.. 하아~

레포트 내용이 ALU (사칙연산이 되는 회로 라던데..)를 계층적 설계로 설계해오라는 레포트입니다.
해보려고 하니까.. 계층적 설계가 무슨 말인지 모르겠네요.

제가 아는 논리회로라고는 AND OR NOT 같은 게이트를 사용해서 만드는 것 밖에 없는데..
왠지 계층적 설계라는 말이 붙은거 보면.. 논리 게이트를 가지고 그리는 건 아닌 것 같거든요.

계층적 설계라는 개념을 좀 가르쳐 주세요..

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
메모라이즈
10/10/25 17:02
수정 아이콘
hierachy.. 위에서 아래로.. tree structure를 생각하시면 될듯 하네요. 저도 배우는 입장이라 자세히는 모르겠습니다 하하하
자세한 설명은 아래 능력자 님들이 해주실 거에요 ^^
아이온
10/10/25 17:15
수정 아이콘
졸업한지 오래 되어 기억이 확실히 나진 않는데요. 그 맥락에서 계층적 설계는 대충 이런 것 같네요.

ALU가 지원하는 연산이 덧셈, 뺄셈, 곱셈, 쉬프터.. 라고 예를 들면, control과 operand가 입력으로 들어오고 output들이 나갈 거고요. 그런 박스 내부는 adder(subtractor), mult, shifter, ... 등으로 구성되어 있을 겁니다. 그리고 adder가 32비트라면, CLA 같은 경우에 16 bit CLA로 구성이 될 거고, 16 bit CLA 안에는 이를테면 4 bit CLA들이 연결되어 있을 거고, 그 안에는 1 bit FA가 들어 있을 테고... 이런 식이겠죠.

이렇게 만들어 오라는 소리 같네요.
10/10/25 17:46
수정 아이콘
컴구조 수업인가 보네요;;;
논리게이트를 가지고 adder 만들고 거기서 만들어진 adder를 가지고 4bit adder를 만들고 그걸 가지고 리플캐리 에더를 만들고 그걸가지고... 계속 차츰차츰 붙여서 alu 만드는거 아닌가요?
지구사랑
10/10/25 18:09
수정 아이콘
ALU를 한 번에 설계하지 말라는 말로 보입니다. 즉, ALU를 하나의 module로 볼 때 그 안에 sub module이 있도록 설계하면 됩니다. 물론 sub module 안에 더 작은 sub module이 들어 있을 수도 있겠지요.
설계에 사용하는 언어는 무엇인가요? 언어를 말씀해 주시면 좀 더 설명을 드릴 수도 있겠습니다만... (아니면 그림으로 그리는 건가요?)
블럭 다이아그램 안에 sub 블럭 다이아그램이 있으면 계층적인 블럭 다이아그램이겠죠. 다만, 계층적인 설계라고 말을 하려면, sub 블럭 다이아그램이 그 자체로 완전한 module이어야 그렇게 부를 수 있을 것 같습니다.
아이온
10/10/25 18:22
수정 아이콘
음. 그건 교수의 취향에 따라 눈치껏 하셔야 됩니다.

HDL로 하나요? VHDL 기준으로 (문법은 까먹었습니다. emacs란 툴이 문법을 자동완성 해줘서 emacs가 없으면 기억을 못하거든요) 뭔가 C의 switch case문 비슷한 거 써서 ALU를 behavioral description 형식으로 쓰시면 안 돼요.

즉,
switch( control )
case "000" :
out <= in1 + in2 ;
...

case "001" :
out <= in1 - in2;
...

이런 스타일로 하시면 안 된다는 거죠.

ALU가 덧셈, 뺄셈, shifter 세 가지만 된다고 보겠습니다. 이러면 control bit은 2비트면 되겠죠. 8비트 연산이라고 치면, 인풋은 2개니까 16비트입니다. 총 인풋 18비트죠. 이걸 갖고 매 아웃풋 비트마다 K map이든 퀸 매클러스키든 논리회로를 미니마이즈 하는 걸 배우는 게 논리회로 수업이었을 겁니다.

모든 논리회로가 이런 식으로 설계 가능한데요. 18비트만 해도 K-map으론 견적이 안 나올 거고, 퀸 맥클러스키로도 시간이 걸릴 텐데, 우리가 흔히 쓰는 32비트, 오퍼런드 두 개에 꽤 많은 제어 비트가 있는 ALU면 쉽지 않겠죠. 하물며 훨씬 복잡한 FSM인 컴퓨터 그 자체는 불가능에 가까울 거고요.

그러니까 큰 기능을 하는 모듈 전체를 블랙 박스로 보고, 작은 기능을 하는 모듈들을 연결해서 만듭니다. 그리고 그 한 단계 작은 걸, 마찬가지로 만들고요. leaf에 해당하는 게 나올 때까지 이 과정이 계속 되죠. 어디가 leaf냐는 그때그때 상황 따라 다를 거고요.

앞서 간단한 ALU로 돌아가면요. 00, 01이면 add/sub이고 10/11은 각각 shift left/right를 한다고 가정하겠습니다. 이 ALU 안엔 add/sub을 하는 모듈과 shifter가 모두 있어야 됩니다. 여기서 나온 아웃풋이 컨트롤 신호에 따라 muxing이 되어서 적당한 아웃풋이 선택되어야 하고요.

그러니까 ALU 안에는 shifter, adder(겸 subtractor), mux가 적절하게 연결되어 있어야 합니다. shifter는 보통 배럴 쉬프터를 쓰는 거 같습니다. 이건 대개 1비트 입력 3개에 컨트롤 2비트를 받아서, 1비트 아웃풋이 나가는 컴비네이셔널 로직들을 연결해서 만들고요. (근데 논리회로 수업이면 이렇게까지 안 해도 되고, VHDL에 있는 쉬프터 연산을 쓰셔도 된다고 봅니다.)

adder는 아마 논리회로 시간에 중점적으로 배우는 컴비네이셔널 로직 중 하나일 거에요. 리플 캐리 애더는 딜레이가 길지만 단순한데, 8비트 리플 캐리 애더는 4개의 리플 캐리 애더 2개를 연결해서 만들죠. 8비트 모듈은 이렇게 4비트 리플 캐리 애더의 연결 관계로만 표현해 주시면 됩니다. 그리고 4비트 리플 캐리 애더는 대충 FA 4개를 연결해서 만드는데, 마찬가지로 FA 네 개의 연결로만 표시하면 되고요. 그리고 FA는 논리식(게이트들의 연결)으로 표현해 주시면 됩니다.

하셔야 될 일은..

1. ALU란 블랙 박스의 i/o를 표현하고 그 내부는 mux, adder, shifter 등의 연결관계로 표현
2. mux, adder, shifter 들을 더 작은 모듈의 연결관계로 표현
3. 2의 작은 모듈을 더 작은 모듈의 연결 관계로 표현
4. 교수가 만족하리라 짐작되는 수준에서 leaf가 될만한 모듈을 논리 게이트의 연결로 표현. 혹은 behavioral description으로 기술

이런 정도 같습니다. 제가 조언을 드리자면, 교수가 leaf 모듈을 논리게이트의 연결로 해오라고 했다면, leaf가 작을수록 좋고, behavioral description도 된다고 했다면 클수록 좋겠죠.

P.S. 그리고 제 설명의 어디가 이해가 안 되셨는지 모르겠습니다만.. 음. 논리회로 설계할 때, 아웃풋을 비트별로 분리해서 생각하고, 모든 input과 아웃풋 각 비트의 조합에 대해 truth table을 만들죠. 어떤 기능을 하는 논리회로든 I/O가 이렇게 명세되면, 소위 말하는 canonical form, 즉, sum of product form (ex. AB + A'B + AB' )을 얻을 수 있구요. 이 자체가 그대로 회로로 구현될 수 있습니다.

한데.. 나중에 배우시겠지만, A, B에 전압이 인가된 후 아웃풋이 계산되어 나올 때까지 당연히 delay가 있고요. fan in이 너무 많거나 논리회로가 눈으로 봤을 때 길면(...) delay도 길겠지요. 그래서 minimize를 하는 거고, 이걸 컴퓨터한테 시키려고 조직적인 방법으로 미니마이즈하는 거죠.

이 '조직적인 방법'이래봐야, 인풋의 크기에 따라 문제가 지수적으로 복잡해지니까, 결국 컴퓨터로도 안 되는 장면이 나오는 것이고.. 그러다 보니, 사람이 큰 모듈은 작은 모듈로 나눠서 표현해주고 컴퓨터한텐 컴퓨터가 다룰 수 있을만한 작은 모듈만 미니마이즈 하라고 던져주는 거라고 저는 이해하고 있습니다.

DCT는 C function으로도 표현되는 알고리즘이고 i/o 조건은 명확합니다. 이런 기능을 하는 하드웨어를 (손으로) 만들 때에도 truth table 만들어서 하는 게 아니라, 작은 모듈로 쪼개서, 점점 내려가면서 할 테고요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
93784 넷북에서 FM 할 수 있나요? [2] 나야NaYa1457 10/10/25 1457
93783 아이폰은 언제쯤 플래시를 지원할까요? [18] 고등어3마리1715 10/10/25 1715
93782 모기가 왜렇게 많을까요 [9] 불타는부채꼴1599 10/10/25 1599
93781 모니터 구입에 대해서 질문드립니다~~!! [4] 질럿쵝오1476 10/10/25 1476
93780 종교글은 삭제의 대상이 아니라 '자제'의 대상 아니었나요? [10] 烏鳳1531 10/10/25 1531
93779 명문대..휴학생 영어 수학강사 적정한 급여수준은? [9] 깜풍2129 10/10/25 2129
93778 SPSS 책 추천 부탁드립니다. [1] 멍멍깽깽꿀꿀1909 10/10/25 1909
93776 아시아 최초 타이틀을 지닌 한국인 인물하면 떠오르는 분들이 계신가요? [7] 1946 10/10/25 1946
93775 akamai netsession interface이거 어따쓰는건가요 포프의대모험4010 10/10/25 4010
93774 이게 가능한 eapm수치인가요?;; [4] SiveRiuS1754 10/10/25 1754
93773 스타2 테란의 저그전 전략에서요 [1] 레몬커피1695 10/10/25 1695
93772 현 고2 수학 조언 [7] Asram1599 10/10/25 1599
93771 컴퓨터 견적 다시 질문 드립니다. [2] 가르치1396 10/10/25 1396
93770 종교관련글 삭제관련 [7] RealWorlD1304 10/10/25 1304
93769 폰 번이로 산지 한달도 안됐는데... [1] GoThree1525 10/10/25 1525
93767 다른 게임 질문인데요. 문명이란 게임에 대해서.. [3] lemphicka1528 10/10/25 1528
93766 혹시 수영 어떻게 해야 잘 할 수 있을까요...?;; [13] nexon2561 10/10/25 2561
93765 캐나다에 대해 잘 아시고 관심있으신 분 봐주세요 ~ ! [1] journey211675 10/10/25 1675
93764 준중형차질문이에요~~ [10] 염나미。1786 10/10/25 1786
93763 아이폰 4 초보사용자 궁금한점 몇가지 여쭤봅니다. [3] 어이없다1568 10/10/25 1568
93762 계층적 설계? 무슨 말인가요? [16] 레필리아3316 10/10/25 3316
93759 제 컴퓨터 사양인데 스타 2 할수 있나요? [4] 강은백1570 10/10/25 1570
93758 모티터 질문입니다. [2] J.D1268 10/10/25 1268
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로