School Lecture Study 48

5. 인코딩 (Encoding)

인코딩 (Encoding) : 개요 신호(signal)은 물리적 매체를 통해 전달된다. 디지털 신호 아날로그 신호 데이터는 디지털 데이터만을 취급한다. 아날로그 데이터는 디지털 데이터를 변환한 것 문제 : 발신지에서 목적지로 보내려는 이진 데이터를 전달될 수 있는 신호로 인코드 해야 한다. 보다 일반적으로는 변조 (Modulation) 디지털 전송 (Transmission) 신호 중계 방법 아날로그 전송 : 신호를 단순 증폭 → 앰프(Amplifier) 사용 디지털 전송 : 신호에서 데이터를 복원하여 다시 신호화한다. 디지털 데이터를 담은 신호만 이용 가능하다 → 리피터 (repeater) 사용 거의 모든 전송 방법이 디지털 전송을 사용한다. (단, 원래 담긴 정보가 디지털 정보여야 repeater를 사..

4. 점대점(Point-To-Point) 링크 - 하드웨어 구성요소

하드웨어 구성요소 데이터 링크 계층 OSI 7계층의 1, 2계층은 무엇을 담당하는가? → 하나의 링크로 연결된 노드 사이의 비트묶음 (프레임) 교환 하나의 링크로 연결된 두 노드 점대점 연결 네트워크 : 가장 간단한 네트워크 일반적 네트워크 구성의 기본 block 노드란? 노드의 실체는? 링크란? 링크의 실체는? 점대점 연결에서의 통신의 실체 비트 교환 : 신호 인코딩 / 디지털 전송 비트 묶음 교환 : 프레이밍 (frame) 오류 검출 / 복구 하드웨어 구성 요소 : 노드(Nodes) 단말/호스트, 스위치/라우터 범용 (프로그래밍할 수 있는) 컴퓨터로 구성된다고 가정한다. (PC 등) 모든 노드는 컴퓨터 구조를 갖는다. 때때로 특수한 목적의 하드웨어로 대체되기도 한다. 유한 메모리 (제한된 버퍼 공간을..

3. 네트워크 성능

성능 네트워크 비교/평가 기준 빠른 네트워크란? 성능 (Performance) : 대역폭 대역폭 (Bandwidth) - 처리량/처리속도 (throughput) 단위 시간당 전송될 수 있는 데이터의 양 Ex. 10Mbps (bits-per-second) → 얼마나 보낼 수/받을 수 있는지에 대한 양 측정 지점 : 링크간 대 종단간 (end-point, end-to-end) 표기 방법 KB : 2^10 bytes Mbps = 10^6 bits per second 대역폭은 비트 폭 (bit width) 과 관련 있다. 속도가 높아지면 비트폭은 작아진다. (비트 사이가 좁아진다.) Ex. 속도를 두 배로 보내면 비트간 간격이 가까워진다 속도가 높아지면 비트폭이 작아져서 간섭/오류 가능성이 높고, 천재 지변시 ..

2. 네트워크 구조

프로토콜 (Protocol) 정의 통신에 사용되는 약속 (수신호, 언어 같은) 반드시 통신하는 양쪽이 대칭 관계여야 한다. 다양한 컴퓨터 통신 시스템/응용으로 인해 기능이 많아져서 프로토콜이 복잡해지고 불명확한 해석이 생기고 복잡한 시스템 때문에 변경 등 관리가 어렵고 새로운 프로토콜이 필요할 때마다 반복하게 된다 → 복잡성을 해결하는 구조적 기법이 필요하다 → protocol을 정하는 방법을 일반화/구조화 하자! 계층화 복잡한 문제는 한번에 풀 수 없다. 복잡한 내용/문제를 숨겨서 문제를 단순화 → 추상화한다 (abstractions) 추상화된 문제/내용 해결 → 추상화를 recursive하게 적용한다. 추상화는 자연스럽게 계층화를 유도하게 된다. 통신 프로토콜은 여러 계층으로 정의된다. 각 계층은 하..

1. 네트워크 기본 개념 - 요구사항

요구사항 네트워크가 제공해야 하는 것 결국, 네트워크에 대한 기능적 정의 연결 통신의 첫 단계는 통신 주체를 연결하는 것이다. 통신측 : 단말(기), terminal 컴퓨터 : 호스트(host) → 통신망이 해야 하는 제 1업무는 ‘연결’이다. 통신 주체 전화기 등 단말기 (엄밀히 말하면 기기가 아닌 응용이 주체가 된다.) 좀 더 일반적으로는 통신 응용이 있다. (카톡, 브라우저 …) 당분간은 단말기로 가정하고 생각한다. 연결 방법 선을 연결하거나 무선으로도 연결할 수 있다. 선 연결은 케이블로 가능하지만, 거리, 크기로 인해 어렵다. 통신망 구성 요소 (물리적 연결 제공을 위한) 노드 : 단말기, 범용 워크스테이션, 라우터, 공유기, 스위치 등 다른 주체와 연결되는 것을 노드라고 한다. 노드가 단말을 ..

Cache

Directed mapped cache Block address = memory address / block size 여기서 block size는 byte 단위임 Block number = block address % block 개수 offset bit 수 = block 당 byte의 지수 값 (Ex. 8이면 offset bit 수는 3) index bit 수 = block의 개수의 지수 값 (64 blocks 면 index bit 수는 6) Tag bit 수 = 32 - index bit 수 - offset bit 수 tag : 보다 확실한 정보를 위해 앞쪽 비트 정보도 필요해서 기록하는 것 valid bit : 이 정보가 정말 유효한 정보인지 확인하는 것 Ex) 예제 8-blocks, 1 word /..

Each instruction's datapath

Instructions R-Type instruction Load instruction Branch-on-Equal Instruction Datapath with jumps added R-Type instruction RegDst = 1 Branch = 0 MemRead = 0 MemtoReg = 0 ALUOp MemWrite = 0 ALUSrc = 0 RegWrite = 1 Sign-extend 필요 없음 (주소값 갖고 있지 않음) + 주소값에 PC Add하는 Adder 필요 없음 Memory 읽기, 쓰기 안 함 (Data Memory 부분 안 쓰임) Load instruction RegDst = 0 Branch = 0 MemRead = 1 MemtoReg = 1 ALUOp MemWrite = 0 AL..

Simple DataPath

중간고사 때는 워낙 말아먹고 이번에 공부를 거의 새로 하다시피 하니까 컴구가 재밌다... 혼자 공부한 걸 정리한 거라 틀린 부분 있을 수 있습니다. 지적 환영합니다 ;) Introduction MIPS의 구현은 simple version, realistic pipelined version 두 가지로 나뉜다. 해당 instruction만 구현하는 processor라고 가정한다. 메모리 참조 : lw, sw 연산, 논리 : add, sub, and, or, slt 제어, 전달 : beq, j (j는 약간 모양이 다르다) Simplified version 먼저 이게 Simplfied 된 version이다. 전혀 안 간단한 것 같지만 pipelined datapath 보다는 훨씬 간단하다. clocking me..

MIPS Instructions

Instructions 들은 binary로 인코딩 된다. 32-bit instruction words로 구성되며, instructions format이 R, I, J로 적은 편이다. == Register numbers == $t0 ~ $t7은 8-15 $t8 ~ $t9는 24-25 $s0 ~ $s7은 16-23으로 각각 정해져있다. MIPS 초록 종이에 다 나와 있음. R-format은 op, rs, rt, rd, shamt, funct로 구성된다. op : r-format임을 표시해주는 부분 rs rt : source register rd : destination register이다. shamt: shift 연산일 때 쓰이는데, 안 쓰이면 0이 들어간다. funct : add, sub 등 실제 어떤 연..

[5-2] Division

용어 정리 - quotient : 몫 - dividend : 나눠지는 수 - divisor : 나누는 수 - remainder : 나머지 ** 0으로 나누는 것에 유의 ** Division RULE - Divide는 절댓값으로 진행한다. - dividend와 remainder의 부호는 같다. Ex) -5/2 - Q : -2 - R : -1 (Q와 R이 모두 같은 부호여야 함) Restoring division example - divisor, quotient, dividend 사용 - divisor는 한 번 연산할 때마다 shift right 실행 - dividend에서 divisor를 빼고, 그 값이 양수인지 음수인지 확인한다. - 양수라면 그 값으로 dividend의 값을 갱신하고, quotient의..