Load나 store 하구 나서 저장이나 적재하구 pc(프로그램카운터)는 그냥 pc+4로 넘어가나요??
컴퓨터구조론 질문 간단한거..
ㅁㄴ(211.243)
2016-12-03 00:35
추천 0
댓글 38
다른 게시글
-
어느새 학교 학부생 수준에서 나이가 많아졌다; [2]씨알메리(crmerry) | 16.12.03추천 0
-
니들 오카멜이 뭔진 아냐? [1]익명(39.7) | 16.12.03추천 0
-
프리랜사로뛰려면 어느분야가좋을까..i&$:&&($3(221.150) | 16.12.03추천 0
-
프로그래밍 입문 일주일 질문좀 ;;;; [11]ㅇㅅㅇ(222.102) | 16.12.03추천 0
-
도지 클리너 돌렸음? [16]씨알메리(crmerry) | 16.12.03추천 0
-
컴퓨터학과인데 진짜 좆같다 [6]bm142857(39.7) | 16.12.03추천 0
-
클래스안에다 friend 적으면 화남 [3]우물안올챙..(whiteprince) | 16.12.03추천 0
-
오늘할일 [15]sh(68.147) | 16.12.03추천 0
-
코세형 보이스 리플로 노래만들면 개꿀일듯 [3]순실치킨먹..(dd10154) | 16.12.03추천 0
-
오밤중에 토렌트를 쳐돌리는지@(1.239) | 16.12.03추천 0
글쎼!
그건 명령어 크기에 달린문제죠~
만약 LOAD 가 32비트 이미디엇 주소를 사용한다면 적어도 PC 는 4 보다 큰 값이 증가되어야 하는것.
Add같은 보통 명령어는 pc+4인데... 메모리접근한 곳에서 pc가 다시 거기로가는건 아니죠??
정보량을 생각해봐.
ADD 에서 operand1, operand2, operand3 가 있을 수 있고 ( operand1 = operand2 + operand3 )
operand1, operand2 만 있을 수 있지 ( operand1 += operand2 )
그건 명령어 체계고, 이때, operand1, 2 모두 레지스터라면, 해당 프로세서가 갖고있는 레지스터의 종류수. 가 중요한거지.
그것도, 하나의 레지스터를 8비트, 16비트, 32비트, 64비트로 접근 지원하게 되면 또 종류수가 늘어나는셈.
8개의 레지스터를 표현한다면 3비트로도 설명될 수 있어. 다만 이때는 이미디엇 주소를 쓸수 없지.
Load $t2 4($t3) 이런거거든요.. mips인데 이럼 pc가 기본적으로 pc+4에서 시작하는건가요?
이미디엇 주소를 쓴다면, 주소 버스가 몇 비트인지가 중요한거지.
PC += 4 가 되는 조합은, 이미디엇 주소가 2바이트 즉 16비트 주소일 가능성이 큰거야.
안그러면 명령 + 주소 의 공간을 표현할 수 없으니 말야.
32비트 기준일거에요!
물론 특정 주소를 레지스터로 인식하게끔 할 수도 있어. 그렇게 명령을 통일할 수도 있는데, 그건 디자인하기 나름이지.
32비트 기준에서 LOAD / STORE 를 구별하기 위해 최소 1비트가 소요될텐데, opcode 에
거기 32비트 주소가 추가되면 PC += 4 가 말이 안되는거지.
이해 안돼?
네.. 조금만더 쉽게 ㅠㅠ
비트에 따라 제한된 엔트로피 보다 큰 무언가가 존재할 수 없는거지.
아니 최소 1비트의 opcode 랑 32비트의 주소값 operand 가 존재하는 LOAD/STORE 주소 의 명령어가
4바이트 밖에 가지지 않을 수는 없는거잖아.
산수 안돼? 최소 33 비트인데 어떻게 4바이트( 32비트 )에 들어가
Mips에서 점프나 브랜치(씨로치면 이프나 for문) 아니고서는 32비트 주소체계에서 pc+4씩 된다고 했었는데
로드나 스토어도 글케되는지 혼동이와서요..
그건 사실상 32비트 어드레스를 지원하지 않는거야. 그리고 MIPS 도 제각각임.
6/5/5/5/5/6 일케 쪼개진다고 들었어요 로드나 스토어는 6/5/5/16 이렇게. .
일반 명령어 기준은 pc+4에요 그런데 점프뛰거나 이프문 같은 경우는 특정주소로 가는게 맞는데 로드나 스토어는 똑같이 pc+4인지 혼란스러워요
beq $rs, $rt, offset
The offset is a 16-bit 2C value, except for j and jal,
PC += 4 가 되기위해 이미디엇 주소 그러니까 offset 은 16비트가 된거야.
실제 물리 주소가 32비트를 지원한다 해도, 이 경우 근거리 주소만 사용하게 되기 때문에 32비트 어드레스를 포괄한다고 볼 수 없어.
그러니까, 내가 말한대로 32비트 어드레스를 포괄하기 위해서는 PC+=4 는 말이 안되는거고, 근거리 주소만 허용하는 명령어들은 PC+=4 일수 있는거야.
근데 알다시피 MIPS 도 32비트, 64비트 머신이 또 다르니 저렇게 PC += 4 라는데 집착할 필요는 없어. 만들기 나름.
아 네 맞아요 offset은 16인데 pc상태는 그러면 offset따라 다른건가요??
음 아니면 if for문 제외한 거는 pc+4라고 보면될까요?? 제가 배우는 mips기준으로..
ㅁㄴㅇㄹ//거에요->거예요 (받침 있으면 이에요 없으면 예요 이로 끝나면 받침 없으므로 예요 요 떼서 말 되면 에요 아니에요는 예외 인명엔 예요(예 : 길동이예요) 성까지 쓰면 이에요(예 : 홍길동이에요)) [리듬 맞춤법 봇♬]