본문 바로가기

전체 글

(73)
컴퓨터구조 10,11 - Pipeline Hazards 전에 배운 singlecycle에 pipeline을 더해서 성능을 획기적으로 상승시킴. 근데 이러면 여러문제가 발생한다. pipeline hazard에는 크게 3가지가 있다. Structural hazard : HW는 하나인데 같은 cycle에 두개의 명령어가 쓸라고함 Data hazard : 두개의 명령어가 같은 storage에 접근 : 명령어가 정순서로 뽑아질때 나옴 Control hazard : 한 명령어가 다음 명령어에 영향을 끼친다. 말로보는거보다 직접 봐보자 Structural Hazards Structural Hazard는 ALU나 Memory에 자주 발생한다. 위의 그림처럼 동시에 접근하거나 아님 Floating 연산같이 ALU가 몇사이클 걸리는거는 pipeline이 늘어지면서 문제발생간단..
컴퓨터구조 9 - Pipeline pipeline이란 무엇인가 저번에 배운 single cycle 근데 이럼 개손해임 쪼개서 시간낭비 없이 쓰게하는게 pipeline의 목적이다. A B C D 각각 시간은 같지만 전체시간은 줄어든다 성능 up 근데 이렇게 쪼개는 기준은 제일 큰 pipe에 따라 결정됨. 여기서는 dry(파란색기계)가 40분이니까 40분기준으로 쪼개진다. 따라서 전체시간을 줄일라면 dry의 시간을 줄이는게 중요하다(다른거좀 늘리더라도) Basic Pipeline For MIPS 각각에 pipeline buffer register을 둬서 각각 진행되게한다. 근데 이러면 Write Back할 때 문제가 발생한다. Write-Back할라고 Registers에 가니까 이미 다른 애들이 작업중일 수 있음. 따라서 write regi..
컴퓨터구조 SingleCycle 여담 ISA란 instruction set architecture임 ISA 유형에는 CISC RISC 등등 ISA 종류에는 MIPS ARM x86 등등 ISA 통해 기계어 - HW 연결 ISA에서 명령어 정할때 고려사항 : high level 기능 다 구현할 수 있나? 적은 명령어로 효율적으로 hw에서 돌아가는가 등 Single Cycle Single Cycle이란 한 clock당 하나의 명령어를 해결하는 환경 명령어 다 구현할수있는 processor는 너무 복잡하니까 이것만 돌아가는 걸로 배워본다. 또 모든 명령어는 같은 시간이 걸릴거라고 가정함 ㅇㅇ 먼저 사전 지식을 배워보자 Computers are sate machines 컴퓨터는 상태기계다 각각의 레지스터, 메모리, 디스크 등등은 상태를 가지고 ..
컴퓨터구조 MIPS - 2 MIPS Register 역할이 나눠져있다 Procedures 절차적으로 함수나 인터렙트 콜이 진행될라면 register들의 값이 유지되어야됨 따라서 함수콜와서 딴데가도 지금하던거(레지스터)를 다른데다 잘 저장해 놔야한다. 딴 데 갈 때는 빈 레지스터를 준다. 이 작업을 수행하기 위해서 저번시간에 적은 JAL을 사용한다 Jump-and-Link로 31번 레지스터에 address counting하는 방식으로 진행된다. 함수콜오면 $ra에 current PC(actually PC+4)를 넣고 다시 돌아올 때 쓴다. 그럼 요것들을 어디 저장해놓냐? stack memory에 차곡차곡 쌓아논다. Proc A에서 B로갈때 A의 레지스터들 다 stack 형태로 메모리에 넣어놓고 빈상태의 레지스터를 Proc B에 준다..
컴퓨터구조 MIPS Compiler : Source program을 Target program으로 변경 보통 c++ java phython과 같은 high level language를 x86 MIPS ARM SPARC 와 같은 기계어로 변역함 설명은 귀찮아서 패스 Registers : 메모리부터 fetch 해온 data stored. cpu는 register하고만 연산 word : 계싼하는 data의 default size 빠르게 MIPS 명령어를 보자 MIPS Instruction Format 32bit 시스템에서임 address = constant 상수가 들어옴 address에 memory address가 와서 번지로 이동함. MIPS Instruction (refererence) 중요한것만 빠르게 본다. http://..
컴퓨터구조 Performance 성능을 측정하는 지표에는 두가지가 있다 Response time (Latency) : time elapsed betwwen start and end of a program, 새로운 일이 주어지면 반응하는 시시간, 응답시간 // 엄밀히 따지면 response time과 latency를 구분하는데 비슷한 개념 Throughput : 정해진 시간동안 하는 일 latency 느려봐야 한 두 클락 손해 -> 영향없음 보통 latency보다 throughput 향상에 초점을 맞춘다. 성능 cpu 실행시간 클락 speed가 1GHz라면 1초에 1GB만큼 이동한다는 뜻. 문제 -> 30billion clock 1초에 1.5billion인데 2만큼 가야되니까 실행시간은 1.3333333초 실행시간 CPI : Instru..
Secondary-Storage Architecture 걸리는 시간 Seek > Rotation > Transfer 보통 개인용 pc는 1번 방식 Network attached Storage(NAS) 방식은 TCP나 UDP 통해서 연결 HDD는 disk block 단위로 접근하는 반면 NAS는 file 단위로 read write 한다. Storage-Area Network(SAN) storage 끼리의 network 대용량 저장장치처럼 생각. block 단위 access Disk Scheduling disk time에서 중요한건 seek time seek time에 영향을 끼치는건 seek distance FCFS 개손해 SSTF (shortest seek time first) 가장 최적, 현재 많은 os가 이 방식 사용 중 SCAN 한쪽 끝찍고 반대쪽으로 ..
Implementing File Systems 파일시스템은 크게 두개있다 파일은 전원꺼져도 남아있다 on disk structure 메모리가 어떻게 파일을 변경하고 저장할 것인가 in memory structure On-disk structure 하드디스크 섹터 0에는 Master Boot Record가 저장되어있ek. 거기안에 boot loader가 있다. 부팅시에 커널을 메모리에 올려놓는 역할 딱 처음에 포맷하면 오른쪽과 같은 형태로 포맷된다 boot block : 부팅에 필요한것을 저장하는 block, os kernel같은거 저장 super block : file system 전체에 대한 정보, 파일 시스템 전체 크기 생성 시간 등등 disk block : os가 disk를 다루는 단위 보통 4kb다. bitmaps : disk block이 사..