본문 바로가기

반응형

컴퓨터 구조론( MIPS )

(17)
메모리 계층 구조 - cache 메모리 1 안녕하세요! WH입니다. 오늘은 메모리 계층 구조 중에 cache 메모리에 대해 알아볼 겁니다. 메모리 계층 구조 CPU가 원하는 데이터를 저장하고 있는 장소인데요. 예시를 뭘로 들어볼까요. 그래요. 시험 기간의 대학생을 예로 듭시다. 대학생 시절로 돌아가고 싶으니까요. 뭐 여튼, 자 내가 시험 공부를 하려고 해요. 이번 시험에 컴퓨터 구조론에 캐시 메모리에 대해 시험에 나온다고 가정해봅시다. 나는 시험 공부를 해야합니다. 그래서 자료를 찾아봐요. 1. 내 머리 속에 캐시 메모리에 대한 내용이 있는지 체크합니다 ( Register ) - 없네요? 평소에 공부좀 하지 2. 그래서 동기한테 물어봤어요. ( Cahce ) - 없데요. 끼리끼리 어울려다닌다더만, 그래도 친구라고 과방에 가보겠답니다 3. 이번에는..
프로세서 7 - 데이터 해저드 안녕하세요! WH입니다. 컴퓨터 구조론 정리해야지 해야지 하면서 미뤄왔는데, 진작 했으면 안해도 되었겠죠? 그렇지만 지금이라도 하니까요! 얼른 끝내 봅시다. 오늘은 명령어를 먼저 보면서 시작해 볼게요 명령어 1. sub $2, $1, $3 $ # Register $2 written by sub 2. and $12, $2, $5 # 1st operand($2) depends on sub 3. or $13, $6, $2 # 2nd operand($2) depends on sub 4. add $14, $2, $2 # 1st ($2) & 2nd($2) depends on sub 5. sw $15, 100($2) # Base ($2) depends on sub 이 명령어의 의도는 뭘까요? 우선 기본적으로 2-5 ..
프로세서 6 - 파이프라인 데이터 패스 및 제어 안녕하세요. WH 입니다. 한 몇 일동안 컴퓨터 구조론에 대해 올리고 있는 데 얼른 올리고 다른 것도 올리겠습니다. review 저번 글에서 명령어를 5 단계로 나눴죠? 이는 파이프라인이 5 단계라는 것을 의미합니다. 이는 한 클럭 사이클에 최대 5개의 명령어가 실행 중 일수 있다는 것을 의미하죠. 그렇다면 한 클럭 사이클에 최대 5개의 명령어가 실행된다면, 데이터 패스 역시 5 부분으로 나눌 수 있겠네요? 그 5 부분 역시 각각의 이름이 붙습니다. 명령어 실행 단계 이름 1. IF ( Instruction fetch ) : 명령어 인출 2. ID ( Instruction decode / register file read ) : 명령어 해독 및 레지스터 파일 읽기 3. EX (Execution / add..
프로세서 5 - 파이프라이닝 개요 안녕하세요. WH 입니다. 오늘은 파이프 라이닝 입니다. 파이프 라이닝이 뭐냐? 병렬 처리르 통한 성능 개선 방법이라고 생각하시면 됩니다. 이번 글은 배경지식 정도의 느낌으로 정리해주시면 된답니다. 단일 사이클은 앞의 4번에 걸쳐 설명했으니.. 넘어갈게요 기억이 나질 않으시면 아래 글을 참고해주세요 2022.02.09 - [컴퓨터 구조론( MIPS )] - 프로세서 1 - R-type 명령어 데이터 패스, 명령어 인출과정 2022.02.09 - [컴퓨터 구조론( MIPS )] - 프로세스 2- Load or Store 명령어, branch 명령어 2022.02.09 - [컴퓨터 구조론( MIPS )] - 프로세스 3 - ALU 제어와 주 제어 유닛 설계 2022.02.10 - [컴퓨터 구조론( MIPS ..
프로세서 4 - 데이터 패스 동작 안녕하세요. WH입니다. 이번 글은 데이터 패스 동작과 관련된 글입니다. 앞의 내용을 알아야만 이번 글은 이해를 하실 수 있습니다, 앞의 내용이 기억나지 않으시면 반드시 아래 글을 참조하시길 바랍니다. 2022.02.09 - [컴퓨터 구조론( MIPS )] - 프로세서 1 - R-type 명령어 데이터 패스, 명령어 인출과정 프로세서 1 - R-type 명령어 데이터 패스, 명령어 인출과정 안녕하세요! WH입니다. 이번 글부터는 프로세서 입니다. 사실 모든 것을 알 필요는 없지만. 프로세스와 메모리 정도는 알아야 하지 않을까 싶습니다. 그럼 어셈은요? 밑 단에서 일하시는 분이라 developer-wh.tistory.com 2022.02.09 - [컴퓨터 구조론( MIPS )] - 프로세스 2- Load ..
프로세서 3 - ALU 제어와 주 제어 유닛 설계 안녕하세요, WH입니다. 프로세스 1과 프로세르 2를 통해 데이터 패스를 만들어 보았는데요, 반드시! 반드시! 그 내용을 알고 있어야 합니다! 왜냐고요? 이번 글이 끝난 뒤에, 다음번에 동작에 대해서 알려면 반드시 이해해야해요 2022.02.09 - [컴퓨터 구조론( MIPS )] - 프로세서 1 - R-type 명령어 데이터 패스, 명령어 인출과정 프로세서 1 - R-type 명령어 데이터 패스, 명령어 인출과정 안녕하세요! WH입니다. 이번 글부터는 프로세서 입니다. 사실 모든 것을 알 필요는 없지만. 프로세스와 메모리 정도는 알아야 하지 않을까 싶습니다. 그럼 어셈은요? 밑 단에서 일하시는 분이라 developer-wh.tistory.com 2022.02.09 - [컴퓨터 구조론( MIPS )] -..
프로세서 2- Load or Store 명령어, branch 명령어 안녕하세요. WH입니다. 이번 글은 lw, sw 그리고 beq 같은 분기 명령어의 데이터 패스에 대해 알아보겠습니다. Load or Store 명령어 데이터패스 일반적으로 사용하는 예시는 아래와 같죠? lw $t1, offset_value($t2) or sw $t1, offset_value($t2) 뭐 대체로 이런 형식이란 말이에요. lw와 sw는 베이스 레지스터( $t2 )와 명령어에 포함되어 있는 16비트 부호있는 변위 필드( offset_value )를 더해서 메모리 주소를 계산하잖아요? load 명령을 예로 들면, 메모리로 부터 읽어 들인 값을 $t1 에 써야 되죠? 그럼 레지스터 파일이 우선 필요하겠어요 읽기 포트 1개, 쓰기 포트 1개만 쓰겠네요? 또 필요한 게 뭐가 있을까요? 아 데이터 메모..
프로세서 1 - R-type 명령어 데이터 패스, 명령어 인출과정 안녕하세요! WH입니다. 이번 글부터는 프로세서 입니다. 사실 모든 것을 알 필요는 없지만. 프로세스와 메모리 정도는 알아야 하지 않을까 싶습니다. 그럼 어셈은요? 밑 단에서 일하시는 분이라면 코드를 읽을 정도는 되야 겠지요. 프로세스 시작하겠습니다. 데이터가 어떤 패스로 흘러들어오는지 이것을 먼저 파악하는 것이 필요합니다. 가장 먼저 명령어 입니다. 명령어 인출 과정 1. PC 에는 현재 명령어의 주소가 들어 있습니다. 2. Read address로 그 값이 보내지고 ALU 로 값이 하나 보내집니다. 2-1 ALU로 보내진 주소에 4가 더해집니다. 왜냐면 바이트 주소이기 때문이죠. 2-2 명령어 메모리에서 주소에 해당하는 명령어를 내보냅니다. 어라? 너무 쉬운데? 그런데 이제부터 조금씩 복잡해 집니다...