전체 글 썸네일형 리스트형 [공학수학1] 라플라스 정리 (Note taking) 시험에 필요한 내용 및 IVP 풀이에 쓰이는 내용을 압축해서 정리했다. 주요 조건들은 생략한 것들이 많아 사용전 제대로 공부할 필요가 있다. Laplace Transform정의$$F(s) = \mathcal{L} (f(t)) = \int_{0}^{\infty} e^{-st} f(t) \mathrm{d}t$$기본 idea는 함수를 지수를 곱하고 적분함으로써 캡쳐하는 것이다. 이후에 나올 디랙 델타함수를 보면 이 표현이 더 와닿을 것이다.특징Linear 함Shifting / sifting 특징미분, 적분 연산이 곱하기 나누기 연산으로 바뀜주요 Transform (암기 필요)$f$\mathcal{L} (f)$1$$\dfrac{1}{s}$$t$$\dfrac{1}{s^2}$$t^2$$\dfrac{2!}{s^3}$.. 더보기 [컴퓨터 구조] - 메모리 #3 캐시 최적화 (Cache Optimization) Cache Performance이제부터는 캐시의 효율성에 관한 논의를 하고자 한다. 그러기 위해서 효율성의 지표를 설정해야 하는데 Memory stall cycles을 기준으로 한 것과 Average memory access time을 기준으로 한 것을 살펴볼 것이다.모델링 (Memory stall cycles 기준)캐시의 성능은 아래와 같은 수식으로 나타낼 수 있다.$$\begin{align*}&\text{Memory stall cycle}\\ &= \frac{ \text{Memory access} }{\text{Program}} \times \text{Miss rate} \times \text{Miss penalty} \\ &= \frac{ \text{Instructions} }{\text{Progr.. 더보기 [컴퓨터 구조] - 메모리 #2 캐시 (cache) 메모리 #1 에서 메모리 구조와 캐시가 왜 필요한지, 어떠한 아이디어로 도입된 것인지 다루었다. 그 내용을 바탕으로 L1 캐시를 도입한 작은 컴퓨터를 구현했다고 하자. 그러면 CPU는 메모리를 요청할 때 먼저 그 데이터가 캐시에 있는지 확인하는 과정이 필요하다. 근데 어떻게 메모리에 있는지, 그리고 캐시의 어느 위치에 있는지 알 수 있을까?방법은 lookup table을 이용하는 것이다. 캐시의 tag와 유효성 등을 저장해서 캐시에 저장되어 있는지 / 저장되어 있다면 어디 있는 것인지 확인할 수 있는 표를 가지고 있는 것이다.Direct mapped cache첫번째로 살펴볼 캐시로 Direct mapped cache를 골랐다.Direct mapped cache는 메모리주소에 따라 캐시에 자장되는 위치가 .. 더보기 [컴퓨터 구조] - 메모리 #1 메모리 구조 개론 Overview지금까지 만든 CPU는 메모리에서 Instruction을 가져오고 데이터를 메모리에서 저장한다. 그리고 메모리는 호출하는 즉시 값을 반환한다고 가정했으나....실제 메모리는 그런거 없다. 아무리 빠른 메모리이더라도 몇 사이클씩은 stall을 피할 수 없고 용량이 커지게 되면 stall 하는 사이클 수는 더욱 증가하게 된다. 하지만, 우리는 빠르면서 용량도 큰 메모리를 원하는데 어떻게 이것을 실현할 수 있을까?정답은 빠르면서 용량도 큰 것 같은 착시를 만들어내는 것이다. 여러 종류의 메모리를 계층구조로 쌓아올리면 빠르면서 용량도 큰 것 같은 메모리를 구현할 수 있다!Ideally one would desire an indefinitely large memory capacity such tha.. 더보기 2.1강 - BSV 조합회로 (Combinational Circuit) Combinational circuit 만들기 with BSVCombinational circuit이란?Combinational circuit은 입력값에 따라 출력값이 결정되는 회로를 의미한다. 즉, 현재의 입력값만으로 출력값이 결정되며, 이전의 입력값이나 출력값에 의해 영향을 받지 않는다. 반대되는 개념은 Sequential circuit으로 매 clock마다 상태가 변하는 회로이다.따라서 combinational circuit을 value expression으로 표현할 수 있다. 이때 value expression은 상수(constant), 변수(variable), 연산자(operator) 로 이루어진다. 다만, 소프트웨어 프로그래밍에서의 변수와는 조금 다른 의미를 가진다. 변수는 계산 그래프 상에서.. 더보기 1강 - Bluespec 언어 소개 Bluespec Verilog 소개Bluespec Verilog이란?Bluespec Verilog(BSV)은 높은 수준의 추상화를 제공하는 하드웨어 기술 언어(Hardware Description Language)이다. 특징으로는,동시성 표현하드웨어 합성 가능위 점이 있으며, 그와 동시에 객체지향적인 프로그래밍을 작성할 수 있도록 지원한다.사실상 기존 Verilog와 비교해서 high-level의 언어적 기능을 지원하는 것이 핵심이다.Hello World첫 bsv 프로그램을 작성해보자.// Helloworld.bsvpackage Helloworld; String s = "Hello world"; (* systhesize *) module mkHelloworld (Empty); .. 더보기 [논리설계] 10강 - CPLD와 FPGA 서론1강부터 9강까지 논리설계를 배웠다. 그러나, 매번 회로를 설계할 때마다 모든 과정을 할 수 없으니 실제로는 CAD tool을 이용해서 작성하게 된다. 대표적으로 Xilinx와 같은 도구로 Truth table minimization를 내부적으로 진행시키고 우리는 다른 문제를 푸는데 집중할 수 있다.이번 강의에서는 Complex Programmable Logic Devices (CPLDs)와 Field Programmable Logic Devices (FPGAs)가 물리적으로 어떻게 구현되는지 알아보고자 한다.PLD (Programmable Logic Device)이렇게 생긴 것을 PLD라고 한다. 이미 PLA를 보고 와서 알겠지만, Sum of Product 형식으로 논리값을 구현할 수 있도록 하는.. 더보기 [논리설계] 9강 - 순차회로 설계 / Sequential Design Practice ### 앞부분 skip Clock skew이상적으로는 clock은 각 컴포넌트들에게 동일한 시점에 도착해야하지만, 실제로는 CLK 상의 게이트나 물리적인 문제로 동시에 CLK 신호가 인식되지 않을 때 clock skew가 발생한다고 부른다.아래의 사진이 그 예시이다. 원래의 $CLK$가 하나의 f/f에는 잘 들어갔지만, 다른 f/f에는 $t_{sk}$만큼의 시간차와 함께 클락이 들어간 모습이다. 이 회로가 잘 작동하기 위해서는 $t_{sk}+t_{hold} 의미를 해석하자면 $t_{sk}+t_{hold}$는 $D$가 안정적으로 수집되는데 필요한 시간이고 $ t_{ffpd}(\text{min})+ t_{comb}(\text{min}) $는 새롭게 출발한 $Q$ 값이 combinational circuit을.. 더보기 이전 1 2 3 다음