• 제목/요약/키워드: Memory Compiler

검색결과 82건 처리시간 0.02초

고속 비동기식 FIFO 생성기 개발 (Development of a High Speed Asynchronous FIFO Compiler)

  • 임지숙;천익재;김보관
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2002년도 춘계학술발표논문집 (상)
    • /
    • pp.617-620
    • /
    • 2002
  • 본 논문에서는 single bank와 multi bank FIFO를 지원하는 CMOS FIFO memory compiler를 개발 검증하였다. 이 컴파일러를 사용해서 설계자는 구현하고자 하는 어플리케이션에 적합한 high speed, high density, low power를 갖는 on-chip memory를 빠른 시간에 만들어 낼 수 있으므로 설계 시간을 절약할 수 있다. 이와 더불어 설계된 FIFO 의 시뮬레이션을 지원하기위한 Verilog 시뮬레이션 모델을 제공하였다. 현재 FIFO를 구성하는 단위 셀들은 0.6um 3-metal 공정을 이용하여 설계하였으며 공정의 변화에 따라 대상 공정에 맞도록 단지 몇 개의 단위 셀만을 재 설계하고 그에 대한 정보를 갱신해줌으로써 공정의 변화에 대처 할 수 있도록 하였다. 설계된 컴파일러를 이용해 생성된 FIFO 는 표준 셀 라이브러리를 이용한 합성 가능한 FIFO에 대하여 $16bit{\times}16word$ FIFO에서 면적면에서 93%, 속도면에서 70%의 향상을 보였다.

  • PDF

버퍼오버플로우 공격 방지를 위한 컴파일러 기법 (Improving Compiler to Prevent Buffer Overflow Attack)

  • 김종의;이성욱;홍만표
    • 정보처리학회논문지C
    • /
    • 제9C권4호
    • /
    • pp.453-458
    • /
    • 2002
  • 최근 들어 버퍼오버플로우 취약성을 이용한 해킹 사례들이 늘어나고 있다. 버퍼오버플로우 공격을 탐지하는 방법은 크게 입력 데이터의 크기 검사 비정상적인 분기 금지, 비정상 행위 금지의 세가지 방식 중 하나를 취한다. 본 논문에서는 비정상적인 분기를 금지하는 방법을 살펴본 것이다. 기존의 방법은 부가적인 메모리를 필요로 하고, 컨트롤 플로우가 비정상적인 흐름을 찾기 위해 코드를 추가하고 실행함으로써 프로그램 실행시간의 저하를 단점으로 이야기할 수 있다. 본 논문에서는 부가적인 메모리 사용을 최소한으로 줄임으로 메모리 낭비를 저하시키고 실행시간에 컨트롤 플로우가 비정상적으로 흐르는 것을 막기 위한 작업들을 최소화함으로서 기존의 방법보다 더 효율적인 방법을 제안하고자 한다.

A Study on Efficient Use of Dual Data Memory Banks in Flight Control Computers

  • Cho, Doosan
    • International Journal of Internet, Broadcasting and Communication
    • /
    • 제9권1호
    • /
    • pp.29-34
    • /
    • 2017
  • Over the past several decades, embedded system and flight control computer technologies have been evolved to meet the diverse needs of the mobile device market. Current embedded systems are at the heart of technologies that can take advantage of small-sized specialized hardware while still providing high-efficiency performance at low cost. One of these key technologies is multiple memory banks. For example, a dual memory bank can provide two times more memory bandwidth in the same memory space. This benefit take lower cost to provide the same bandwidth. However, there is still few software technologies to support the efficient use of multiple memory banks. In this study, we present a technique to efficiently exploit multiple memory banks by software support. Specifically, our technique use an interference graph to optimally allocate data to different memory banks by an optimizing compiler. As a result, the execution time can be improved upto 7% with the proposed technique.

Rust 언어 메모리 안전 모델에서 스마트 포인터의 역할에 대한 연구 (Understanding The Role of Smart Pointers in the Rust Memory)

  • 카욘도마틴;방인영;백윤흥
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2023년도 춘계학술발표대회
    • /
    • pp.345-347
    • /
    • 2023
  • Rust has gained popularity as a memory safe systems programming language. At the center of its memory safety is a strict memory ownership model with stringent rules enforced by the compiler. This paper aims to shed light on this memory safety model and the role smart pointers play towards its success. We study specific smart pointers, their purposes and contribution to Rust's memory safety. We further explore weaknesses of these smart pointers and their APIs, and provide scenarios under which they may lead to memory vulnerabilities in Rust programs.

DDMB 구조에서의 런타임 메모리 최적화 알고리즘 (Run-time Memory Optimization Algorithm for the DDMB Architecture)

  • 조정훈;백윤흥;권수현
    • 정보처리학회논문지A
    • /
    • 제13A권5호
    • /
    • pp.413-420
    • /
    • 2006
  • 대부분의 디지털 신호 처리기 (Digital Signal Processor)는 두 개 이상의 메모리 뱅크를 가지는 하버드 아키텍처 (Harvard architecture)를 지원한다. 다중 메모리 뱅크 중에서 하나는 프로그램용으로 나머지는 데이터용으로 사용하여 프로세서가 한 명령어 사이클에 메모리의 여러 데이터에 동시 접근을 가능하게 한다. 이전 연구에서 우리는 다중 메모리 뱅크에 효율적으로 데이터를 할당하는 방법에 대하여 논하였다. 본 논문에서는 이전 연구의 확장으로 런타임 메모리의 최적화에 대한 우리의 최근 연구에 대하여 소개한다. 듀얼 데이터 메모리 뱅3(Dual Data Memory Bank)를 효율적으로 이용하기 위해 각 메모리 뱅크에 할당된 변수를 관리하기 위한 독립적인 두 개의 런타임 스택이 필요하다. 프로시저에 대한 두 메모리 뱅크의 활성화 레코드(Activation Record)의 크기는 각 메모리 뱅크에 할당된 변수의 개수가 일정하지 않기 때문에 다를 수 있다. 따라서 여러 개의 프로시저가 연속으로 호출될 때 두 개의 런타임 스택의 크기가 크게 달라질 수 있다. 이러한 두 메모리 뱅크 사이의 불균형은 하나의 메모리에 여유 공간이 있음에도 불구하고 다른 하나의 메모리 뱅크의 사용량이 온칩 메모리(on-chip memory)범위를 초과하는 원인이 될 수 있다. 본 논문에서는 온칩 메모리를 효율적으로 사용하기 위해 두 런타임 스택의 균형 맞추기를 시도했다. 본 논문에서 제안하는 알고리즘은 상대적으로 단순하지만 효율적으로 런타임 메모리를 사용할 수 있다는 것을 실험결과를 통해 보여주고 있다.

Efficient Use of On-chip Memory through Profile-Driven Array Reorganization

  • Cho, Doosan;Youn, Jonghee
    • 대한임베디드공학회논문지
    • /
    • 제6권6호
    • /
    • pp.345-359
    • /
    • 2011
  • In high performance embedded systems, the use of multiple on-chip memories is an essential architectural feature for exploiting inherent parallelism in multimedia applications. This feature allows multiple data accesses to be executed in parallel. However, it remains difficult to effectively exploit of multiple on-chip memories. The successful use of this architecture strongly depends on how to efficiently detect and exploit memory parallelism in target applications. In this paper, we propose a technique based on a linear array access descriptor [1], which is generated from profiled data, to detect and exploit memory parallelism. The proposed technique tackles an array reorganization problem to maximize memory parallelism in multimedia applications. We present preliminary experiments applying the proposed technique onto a representative coarse grained reconfigurable array processor (CGRA) with multimedia kernel codes. Our experimental results demonstrate that our technique optimizes data placement by putting independent data on separate storage. The results exhibit 9.8% higher performance on average compared to the existing method.

주기억 데이터베이스 시스템 질의 엔진의 설계 및 구현 (The Des inn and Implementation of Query Engine for Main Memory Database System)

  • 이경식;김경창
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (B)
    • /
    • pp.121-123
    • /
    • 2002
  • 본 논문에서는 주기억 데이터베이스 시스템을 위만 질의처리 엔진의 설계 및 구현에 대해서 설명하였다. 이를 바탕으로 Embedded SQL 지원을 위한 Pre-compiler 구현 방법 , 단순 질의 및 Join 과정에서의 주기억 장치의 효율적인 사용 방법 , Cursor, Dynamic SQL 처리 방법에 대해 소개하였다.

  • PDF

IEEE 1149.1을 이용한 March 알고리듬의 내장형 자체 테스트 구현 (Implementation of March Algorithm for Embedded Memory Test using IEEE 1149.1)

  • 양선웅;박재흥;장훈
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제7권1호
    • /
    • pp.99-107
    • /
    • 2001
  • 본 논문에서는 내장 메모리 테스트를 위해 메모리 테스트 알고리즘인 10N March 테스트 알고리즘을 회로로 구현하였으며, 구현된 내장 메모리 BIST 회로를 제어하기 위해 IEEE 1149.1 표준안을 회로로 구현하였다. 구현된 내장 메모리 테스트 회로는 워드 단위의 메모리를 위한 변경 데이터를 이용함으로써 워드 단위 메모리의 고착 고장, 천이 고장, 결합 고장을 완전히 검출할 수 있다. 구현된 회로는 Verilog-HIDL을 이용하여 구현하였으며, Synopsys에서 합성하였다. 합성된 메모리 테스트 회로와 IEEE 1149.1 회로의 검증은 메모리 컴파일러에 의해 생성된 메모리 셀과 VerilogXL을 이용하여 수행하였다.

  • PDF

클래스-기반 아키텍처 기술 언어의 설계 및 검증 (Design and Verification of the Class-based Architecture Description Language)

  • 고광만
    • 한국멀티미디어학회논문지
    • /
    • 제13권7호
    • /
    • pp.1076-1087
    • /
    • 2010
  • 특정 응응 분야를 위해 개발된 임베디드 프로세서의 진화 및 새로운 출현과 더불어 이를 지원할 수 있는 소프트웨어 개발 환경에 관한 연구와 상용화 시도가 활성화되고 있다. 재목적성(retargetability)은 프로세서나 메모리에 대한 아키텍처 정보를 아키텍처 기술 언어(ADL)로 기술하여 컴파일러, 시뮬레이터, 어셈블러, 프로파일러, 디버거 등과 같은 소프트웨어 개발 도구를 생성하는데 이용된다. EXPRESSION ADL은 아키텍처 모델링, 소프트웨어 개발 도구 생성, 빠른 프로토타입핑, 아키텍처에 대한 설계 탐색과 SoC에 대한 기능적인 검증을 위해 개발된 ADL로서 프로세서 코어, 코프로세서, 메모리 등으로 구성된 소프트웨어적인 아키텍처를 구조와 동작 정보를 혼합하여 자연스럽게 모델링하였다. 이 논문에서는 EXPRESSION ADL을 기반으로 ADL의 작성 편리성, 확장성을 높이기 위해 클래스 기반 ADL을 설계하고 문법의 타당성을 검증하였다. 이를 위해, 6개의 핵심 클래스를 정의하고 MIPS R4000에 대한 ADL을 표현으로부터 EXPRESSION과 동일한 컴파일러, 시뮬레이터를 생성하였다.

직접 메모리 접근 장치에서 버스트 데이터 전송 기능의 효과적인 활용 (Efficient Utilization of Burst Data Transfers of DMA)

  • 이종원;조두산;백윤흥
    • 대한임베디드공학회논문지
    • /
    • 제8권5호
    • /
    • pp.255-264
    • /
    • 2013
  • Resolving of memory access latency is one of the most important problems in modern embedded system design. Recently, tons of studies are presented to reduce and hide the access latency. Burst/page data transfer modes are representative hardware techniques for achieving such purpose. The burst data transfer capability offers an average access time reduction of more than 65 percent for an eight-word sequential transfer. However, solution of utilizing such burst data transfer to improve memory performance has not been accomplished at commercial level. Therefore, this paper presents a new technique that provides the maximum utilization of burst transfer for memory accesses with local variables in code by reorganizing variables placement.