• Algorithm,  Study

    Binary Search Tree

    일반적인 Tree는 검색용으로 적합하지 않다. 왜냐하면 어떤 값을 tree 구조에 저장 할 때 항상 tree에 노드가 균일하게 배치가 된다는 보장이 없기 때문이다. 이를 위해서 Binary Search Tree 구조는 balance 함수를 통해서 항상 log(2)N의…

  • Algorithm,  Study

    [Algorithm] Generic Tree

    Tree 기본 구조 및 용어 Tree 구조의 특징은 어떤 데이터를 찾고자 할 때 좀 더 빠른 시간 내에 찾을 수 있는 장점을 가진다. 구조는 아래 그림과 같이 root를 기점으로 좌 우 노드와 연결되어…

  • Digital Logic,  Study

    [Digital Logic] Static Timing Analysis (STA)

    Definition 회로 설계하는 분야에서 Static timing analysis (STA)는 회로의 모든 타이밍 위배가 발생 할 수 있는 경로에 대해서 확인함으로서 성능을 검증하는 방법이다. 또 다른 검증 방법으론 dynamic simulation이 있는데, 이 방법은 모든 입력…

  • Algorithm,  Study

    [Algorithm] Generic Hash

    Linked List 구조에서 특정 데이터를 찾고자 할 때, head가 가리키는 노드부터 찾을텐데 만약 데이터가 가장 마지막 노드에 있다면 시간복잡도 기준으로 O(N)이 된다. Hash에선 bucket이라는 구조가 사용되는데, hash function을 거쳐 나온 값을 통해서 bucket을…

  • Algorithm,  Study

    타입 의존성 제거 (Loose Coupling)

    C언어를 사용하는 환경에서 만약 linked list 구조에 우리가 원하는 구조체를 가지는 instance를 저장하고 싶을 때는 쉽게 되지 않는다. 위 코드처럼 SAWON 이라는 구조체가 있는데, 해당 구조체를 linked list에 삽입하려고 할 때, 위 코드에서…

  • Digital Logic,  Study

    SAIF Format

    Switching Activity Interchange Format (SAIF)의 약자로 디지털 회로 설계 과정 중 사용되는 data format 중 하나다. 매우 단순하지만, 위 그림처럼 우리가 일반적으로 아는 설계 data들을 다음과 같이 변화시키는데, Pre-Net에서 Post-Net으로 변환하는 과정을 Place…

  • Digital Logic,  Study

    Analysis, Elaboration and Synthesis

    Hardware design을 하시는 분들이면 다음 단어들을 많이 듣고 사용할 것이다. 각 단어들의 정의를 잘 쓰인 글이 있어서 첨부해봤다. Analysis Analysis is the process where the design files are checked for syntactic and semantic…

  • Computer Architecture,  Study

    [Paper Review] The Load Slice Core Microarchitecture

    Motivation Microprocessor core는 Instruction Level Parallelism (ILP)를 올리기 위해 in-order pipeline에서 superscalar out-of-order pipeline으로 진화해왔으며, side-effect로 memory Level Parallelism (MLP) 또한 높여왔다. 참고: Memory-level parallelism (MLP) is a term in computer architecture referring to the ability…