KR20090060666A - 메모리 액세스 충돌 감소 장치 및 방법 - Google Patents

메모리 액세스 충돌 감소 장치 및 방법 Download PDF

Info

Publication number
KR20090060666A
KR20090060666A KR1020070127576A KR20070127576A KR20090060666A KR 20090060666 A KR20090060666 A KR 20090060666A KR 1020070127576 A KR1020070127576 A KR 1020070127576A KR 20070127576 A KR20070127576 A KR 20070127576A KR 20090060666 A KR20090060666 A KR 20090060666A
Authority
KR
South Korea
Prior art keywords
subpage
address
memory
access
bits
Prior art date
Application number
KR1020070127576A
Other languages
English (en)
Other versions
KR100922732B1 (ko
Inventor
권영수
구본태
엄낙웅
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070127576A priority Critical patent/KR100922732B1/ko
Priority to US12/195,153 priority patent/US7958321B2/en
Publication of KR20090060666A publication Critical patent/KR20090060666A/ko
Application granted granted Critical
Publication of KR100922732B1 publication Critical patent/KR100922732B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance

Abstract

메모리 액세스 충돌 감소 장치 및 방법이 개시된다. 본 발명은 복수의 페이지를 포함하고 각 페이지는 복수의 서브페이지들을 포함하는 메모리에 복수의 데이터 처리 엘레멘트들이 동시에 액세스할 때, 메모리 액세스 충돌을 감소하는 장치에 있어서, 서브페이지들을 분할하는 서브페이지 분할 어드레스를 재분배하여 동시 액세스시 각 서브페이지별로 데이터가 동시에 출력되게 하는 액세스 중재기; 및 서브페이지들로부터 복수의 데이터가 출력될 때 서브페이지들의 출력들중 하나를 선택하여 출력하는 복수의 선택기를 포함함을 특징으로 한다.
데이터 처리 엘레멘트, 페이지, 서브페이지 분배기, 메모리 어드레스 매핑

Description

메모리 액세스 충돌 감소 장치 및 방법{Apparatus and method for reducing memory access conflict}
본 발명은 메모리 액세스 중돌 감소 장치 및 그 방법에 관한 것으로, 대량의 멀티미디어 데이터 처리를 위한 다수의 데이터 처리 엘리먼트 (Data Processing Element)로 구성된 병렬 데이터 처리 어레이 (Parallel Data Processing Array)에서 다수의 데이터 처리 엘리먼트가 메모리 페이지 (Memory Page)를 동시에 액세스(access) 할 때 메모리 충돌을 최소화하기 위한 방법 및 장치에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2006-S-048-02, 과제명: 오디오 비디오 신호처리용 임베디드 DSP Platform].
IT산업의 발전과 더불어 휴대용으로 소지할 수 있는 제품뿐만 아니라 가정용 전자기기에서도 비디오, 오디오 등의 멀티미디어 데이터 처리를 수행하는 제품이 급격하게 늘어나게 되었다. 이러한 멀티미디어 제품은 DVD영상, MPEG-2, 휴대폰의 동영상 재생기능, HDTV 등 매우 다양한 제품군으로 확산되고 있다. 해당 멀티미디어 제품을 위한 영상 및 오디오는 데이터량의 관점에서 볼 때 매우 방대한 데이터 를 포함한다. 예를 들어, 1920x1200 의 화면 크기를 가지는 영상의 각 픽셀(pixel)이 24-비트로 표현된다고 할 때, 초당 30 프레임을 연속적인 직렬 비트스트림 (Serial bitstream) 으로 전송하려면 1.66Gbps의 전송성능이 필요하다. 프레임율 (Frame rate)이 증가될 수록 더 많은 전송성능이 필요하기 때문에 현재의 대부분의 영상 및 음성은 고도의 압축 기법을 사용하고 있다.
멀티미디어 데이터의 압축기법은 MPEG-2, MPEG-4, H.264, BSAC(Bit Sliced Arithmetic Coding), AAC+(Advanced Audio Coding +) 등을 비롯하여 매우 다양한 종류의 압축기법이 존재하고 이러한 압축기법을 사용하기 위해서는 영상을 압축 (code) 하고 해제 (decode) 하는 기능을 가진 하드웨어가 필요하다. 현재의 대부분의 모바일 및 가정용 멀티미디어 기기들은 압축 및 해제를 실시간으로 수행하기 위해서 멀티미디어 코덱용 VLSI(Very Large Scale Integration) 을 내장하고 있다. 코덱 VLSI가 요구하는 성능은 코덱 알고리즘의 복잡도나 특성에 따라 다르지만, 최근의 멀티미디어 코덱은 0.6 GIPS-1.5 GIPS (Giga Instructions Per Second) 가 요구되고, 향후 수년 내로는 2 GIPS-5 GIPS 이상의 처리 성능이 필요할 것으로 전망된다.
이러한 다양한 종류의 멀티미디어 코덱을 단시간내에 하드웨어로 구현하면서, 고성능을 얻을 수 있는 방법은 프로세서 어레이 구조를 사용하는 것이다. 프로그래머블 프로세서는 다양한 멀티미디어 코덱을 단시간에 구현할 수 있게 하는 반면, 어레이 구조의 프로그래머블 프로세서는 고성능의 멀티미디어 처리에 대한 가능성을 가지고 있다. 또한, 멀티미디어 데이터 처리는 일련의 데이터 스트림 (Data stream) 에 대해서 동일한 연산을 반복적으로 행하는 특성을 지니고 있기 때문에, 데이터 처리의 특성상 병렬화가 용이하다는 장점을 지니고 있다. 병렬화가 용이하다는 것은 다수의 프로세서 (Processor) 에 데이터 처리를 위한 작업 (Task)을 독립적으로 할당하고 할당된 각각의 작업 (Task)을 동시에 수행할 수 있는 특성이 있다는 것을 의미한다.
멀티미디어 데이터 처리를 위한 프로세서 어레이는 일반적으로 대용량의 메모리를 가진다. 대용량의 메모리는 다중의 데이터 처리 엘리먼트가 동시에 액세스 할 수 있는 구조를 가지고 있다. 메모리의 동시 액세스에 있어서 두 개 이상의 데이터 처리 엘리먼트가 같은 물리적 메모리를 액세스하면 충돌 (conflict)이 일어날 수 있다. 메모리 액세스 중재기 (memory access arbiter)는 이 충돌을 해결하기 위하여 클럭 사이클을 희생하면서 순차적으로 메모리 액세스를 처리하여 각 데이터 처리 엘리먼트가 정상적으로 메모리를 액세스 할 수 있도록 한다. 동일한 물리적 메모리에 액세스할 수 있는 데이터 처리 엘리먼트의 갯수가 늘어날수록 이러한 충돌 횟수는 동작시간 동안 꾸준히 증가하여 전체 성능을 저하시키는 요인이 된다.
본 발명이 해결하고자 하는 과제는 다수의 데이터 처리 엘리먼트 (Data Processing Element, DPE) 로 구성된 데이터 처리 어레이 (Data Processing Array) 에서 데이터 처리 엘리먼트 간에 공유된 중앙 메모리 (main memory)를 액세스할 때 메모리 액세스 충돌 (memory access conflict) 을 최소화하는 장치 및 방법을 제공하는 데 있다.
상기 과제를 이루기 위한, 본 발명은 복수의 페이지를 포함하고 각 페이지는 복수의 서브페이지들을 포함하는 메모리에 복수의 데이터 처리 엘레멘트들이 동시에 액세스할 때, 상기 메모리 액세스 충돌을 감소하는 장치에 있어서, 상기 서브페이지들을 분할하는 서브페이지 분할 어드레스를 재분배하여 상기 동시 액세스시 각 서브페이지별로 데이터가 동시에 출력되게 하는 액세스 중재기; 및 상기 서브페이지들로부터 복수의 데이터가 출력될 때 상기 서브페이지들의 출력들중 하나를 선택하여 출력하는 복수의 선택기를 포함함을 특징으로 하는를 포함함을 특징으로 한다.
상기 과제를 이루기 위한, 본 발명의 메모리 충돌 감소 방법은 복수의 페이지를 포함하고 각 페이지는 복수의 서브페이지들을 포함하는 메모리에 복수의 데이터 처리 엘레멘트들이 동시에 액세스하는 단계; 상기 서브페이지들을 분할하는 서브페이지 분할 어드레스를 재분배하여 상기 동시 액세스시 각 서브페이지별로 데이 터가 동시에 출력되는 단계; 및 복수의 선택기를 이용하여 상기 단계에서 동시에 출력되는 데이터중 하나를 상기 선택기들별로 각각 선택하여 출력하는 단계를 포함함을 특징으로 하는 를 포함함을 특징으로 한다.
본 발명에 따르면, 메모리를 복수의 페이지로 분할하고, 각 페이지를 다시 복수의 서브페이지들로 분할함으로써 메모리 스톨(stall)이 발생하지 않기 때문에 최소의 클럭 사이클 동안에 복수의 데이터 처리 엘리멘트들이 동시에 메모리를 액세스할 수 있다.
또한 본 발명에 따른 구조는 특정 애플리케이션을 다수의 데이터 처리 엘리먼트에 매핑할 때마다 서브페이지 분배기의 메모리 액세스 패턴에 따라서 변환함으로써 애플리케이션에 따라 메모리 액세스 스톨을 최소화할 수 있다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세하게 설명하기로 한다.
도 1은 본 발명에 따른 병렬 데이터 처리 어레이(array)에 대한 개략적인 구성을 도시한 것이다.
도시된 병렬 데이터 처리 어레이는 복수의 데이터 처리 엘레멘트(DPE, Data Processing Element)(10, 11), 액세스 중재기(access arbiter)(20), 복수의 페이지를 포함하는 메모리(30)를 포함한다.
DPE(10, 11)는 데이터 처리를 위한 명령어와 계산 유닛을 가지면서 파이프 라인 구조를 가지는 프로세서이다. 파이프 라인 구조를 가지는 프로세서는 매 클럭 사이클마다 다수의 명령어가 동시에 작업을 수행하는 구조이기 때문에, 동시에 다수의 메모리 액세스를 수행하게 된다. 본 실시예에 따른 DPE(10, 11)는 매 클럭 사이클마다 다수의 메모리 액세스를 수행하는데, 각 메모리 액세스를 위해서는 독립적인 메모리 액세스 버스(memory access bus)(10-1, 11-1)가 필요하다. 도시된 메모리 액세스 버스는 명령어를 읽어오기 위한 명령어 액세스 버스(instruction access bus), 두 오퍼랜드 버스(operand bus), 결과 쓰기 버스(result write bus)를 포함한다. 매모리 액세스 버스들은 액세스 중재기(20)로 연결된다.
액세스 중재기(20)는 제1DPE(10)의 제1메모리 액세스 버스(10-1)의 메모리 액세스 요구 어드레스들과 제2DPE(11)의 제2메모리 액세스 버스(11-1)의 메모리 액세스 요구 어드레스들을 분석한다. 분석결과, 제1 및 제2DPE(10, 11)의 메모리 액세스 요구 어드레스들이 충돌한 경우, 충돌이 발생한 메모리 액세스 쌍중 선택된 하나만 해당 클럭 사이클에 메모리 액세스를 시도하고, 다른 메모리 액세스 요구에 대해서는 그 메모리 액세스 요구를 발생한 DPE(10,11)에 액세스 스톨(stall)을 발생시켜서 다음 클럭 사이클에 다시 액세스하도록 명령한다.
DPE(10, 11)가 액세스하는 메모리(30)는 메모리 액세스 충돌을 최소화하기 위해 복수의 메모리 페이지(physical memory page)로 분할되어 있다. 예를 들어, DPE(10, 11)의 메모리 어드레스가 16비트로 구성되어 있을 경우, 메모리 어드레스 영역은 각각 0x0000~0x3fff, 0x4000~0x7fff, 0x8000~0xbfff, 0xc000~0xffff 의 메모리 어드레스에 해당하는 주소를 가지도록 4개의 페이지로 분할된다. 이렇게 메모리 어드레스를 분할하면 서로 다른 메모리 영역을 액세스할 경우에 충돌이 일어나 지 않고 동시에 액세스가 가능하다. 그러나 동일한 메모리 영역을 액세스한다면 마찬가지로 충돌이 일어난다.
도 2는 본 발명에 따른 메모리 감소 장치와 메모리 페이지의 구조를 도시한 것이다.
메모리 감소 장치는 액세스 중재기(20)와 메모리 페이지에 연결되는 복수의 멀트플렉서(40)를 포함한다.
도시된 액세스 중재기(20)는 제어기(201), 제1버퍼(202), 서브페이지 분배기(203) 및 제2버퍼(204)를 포함한다.
도시된 메모리 페이지(30-1)는 복수의 서브페이지들(301, 302, 303, 304)을 포함한다.
제어기(201)는 DPE(10,11)로부터 출력되는 메모리 어드레스들을 분석한다. 도 2에 도시된 실시예는 메모리 어드레스들의 크기가 16비트인 경우에 대한 것이다. 제어기(201)는 각 메모리 어드레스를 제1버퍼(202)에 각각 페이지 분할 어드레스(202-1), 서브페이지 어드레스(202-2) 및 서브페이지 분할 어드레스(202-3) 로 구분하여 저장한다.
페이지 분할 어드레스(202-1)는 상위 2비트로 도 1의 메모리(30)의 4개의 페이지중 한 페이지를 선택하는데 사용된다.
서브페이지 어드레스(202-2)는 서브페이지 내의 메모리 어드레스를 지정하는데 사용된다. 서브페이지 분할 어드레스(202-3)는 4비트로 서브페이지 분배기(203)로 입력된다.
서브페이지 분배기(subpage distributor, 203)는 예를 들어, 테이블로 만들어져 입력된 서브페이지 분할 어드레스(202-3)를 새로운 서브페이지 분할 어드레스로 분배한다. 도시된 바에 따르면, b0000은 b0001로, b0001은 b0010으로 각각 분배된다. 입력 서브페이지 분할 어드레스(202-3)는 순차적으로 증가하고 있지만, 출력 서브페이지 분할 어드레스는 사용자에 의해 미리 설정된 분배 설계에 따른 값을 갖는다. 즉, 충돌이 자주 일어나는 액세스 데이터를 서로 다른 서브페이지에 위치시켜서 동시에 데이터를 얻을 수 있도록 분배한다. 단, 총 16개의 출력 서브페이지 분할 어드레스는 서로 다른 값을 가져야 한다.
출력 서브페이지 분할 어드레스는 서브페이지 어드레스(202-2)와 연결되어(concatenated) 제2버퍼(204)에 출력 서브페이지 어드레스로 저장된다. 제어기(201)는 참조번호 205에 도시된 바와 같이 제2버퍼(204)의 하위 2비트를 서브페이지들(301, 302, 303, 304)의 출력을 선택하기 위해 멀티플렉서(40)의 선택신호로 출력한다.
또한 출력 서브페이지 어드레스의 상위 12비트는 서브페이지들(301, 302, 303, 304)의 메모리 어드레스로 출력된다.
서브페이지들(301, 302, 303, 304)은 메모리 페이지내에서 물리적으로 분할된 메모리이다. 서브페이지는 각각 한 개의 어드레스와 입력 데이터, 출력 데이터 포트를 가진다. 각 서브페이지들(301, 302, 303, 304)에서 출력된 데이터는 멀티플렉서(40)에 의해 그중 하나가 선택되어 출력된다. 이때 가능하게는 제2버퍼(204)의 하위 2비트가 각각 서로 다른 값을 갖도록 분배되는 경우, 한 클럭 사이클 동안 각 서브페이지별로 데이터를 얻을 수 있다. 따라서 동일한 서브페이지 선택신호에 따라 각기 다른 서브페이지의 출력을 선택하도록 서브페이지들(301, 302, 303, 304)에 연결되는 멀티플렉서(40)가 서브페이지들의 개수만큼 필요하며, 본 실시예에서는 4개의 멀티플렉서가 필요하다.
멀티플렉서(40)의 출력은 페이지 분할 어드레스(202-1)에 의해 선택되어 페이지 출력으로 최종 출력된다.
도 1 및 도 2에 도시된 구조에 따른 메모리 액세스 동작을 설명하면 다음과 같다. 먼저, 제1DPE(10)와 제2DPE(11)가 동시에 동작하면서, 동일한 메모리 페이지를 액세스한다고 가정한다. 또한 제1DPE(10)는 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, ~ 0x0017 의 8 개 데이터를 액세스하고 있고, 제DPE(11)는 0x0014, 0x0015, 0x0016, 0x0017, 0x0018 ~ 0x001b 의 순서로 순차적으로 8개의 데이터를 액세스하고 있다고 가정한다. 서브페이지 분배기(203)가 없다면, 제1DPE(10)와 제2DPE(11)는 메모리 액세스에 있어서 매 클럭 사이클마다 동일한 물리적 서브페이지를 액세스함으로써 메모리 스톨이 매 클럭 사이클마다 발생하여 총 16개의 클럭 사이클이 필요하다.
따라서 서브페이지 분배기(203)를 사용하여 자주 충돌이 발생하는 서브페이지를 재분배하여 충돌을 감소할 수 있다.
도 3은 서브 페이지 분배기(203)에 의한 서브페이지 분할 어드레스(202-3)의 매핑 예를 도시한 것이다. 도시된 바에 따르면, 서브페이지 분할 어드레스 입력 0x0000~0x0011(31)에 대해서는 동일한 값으로(310) 매핑하였다. 서브페이지 분할 어드레스 입력 0x0100~0x0111(32)에 대해서는 두 개씩 그 위치가 바뀌는 형태로 0x0101, 0x0100, 0x0111, 0x0110 (320)으로 매핑하였다. 뒤이어 오는 참조번호 33의 서브 페이지 분할 어드레스에 대해서는 참조번호 330과 같이 순차적으로 매핑하였고, 참조번호 34의 서브페이지 분할 어드레스에 대해서는 참조번호 320의 경우와 같이 참조번호 340으로 매핑하였다.
도 4는 도 3에 도시된 서브페이지 분배기의 매핑 결과에 따라 서브페이지 상에서의 데이터 위치를 도시한 것이다. 도시된 바와 같은 데이터 배치에 의하면 메모리 스톨이 발생하지 않아 8개의 클럭 사이클, 즉, 최소한의 클럭 사이클 동안에 제1 및 제2DPE(10,11)가 동시에 메모리를 액세스할 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서, 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명에 따른 병렬 데이터 처리 어레이(array)에 대한 개략적인 구성을 도시한 것이다.
도 2는 본 발명에 따른 메모리 감소 장치와 메모리 페이지의 구조를 도시한 것이다.
도 3은 서브 페이지 분배기(203)에 의한 서브페이지 분할 어드레스(202-3)의 매핑 예를 도시한 것이다.
도 4는 도 3에 도시된 서브페이지 분배기의 매핑 결과에 따라 서브페이지 상에서의 데이터 위치를 도시한 것이다.

Claims (7)

  1. 복수의 페이지를 포함하고 각 페이지는 복수의 서브페이지들을 포함하는 메모리에 복수의 데이터 처리 엘레멘트들이 동시에 액세스할 때, 상기 메모리 액세스 충돌을 감소하는 장치에 있어서,
    상기 서브페이지들을 분할하는 서브페이지 분할 어드레스를 재분배하여 상기 동시 액세스시 각 서브페이지별로 데이터가 동시에 출력되게 하는 액세스 중재기; 및
    상기 서브페이지들로부터 복수의 데이터가 출력될 때 상기 서브페이지들의 출력들중 하나를 선택하여 출력하는 복수의 선택기를 포함함을 특징으로 하는 메모리 액세스 충돌 감소 장치.
  2. 제1항에 있어서,
    상기 서브페이지 분할 어드레스는 상기 데이터 처리 엘레멘트들로부터 수신한 메모리 액세스 어드레스의 하위비트들에 해당하고,
    상기 메모리 액세스 어드레스는 상기 페이지를 분할하는 상위비트들과 상기 서브페이지에 대한 어드레스를 갖는 중간비트들을 더 포함함을 특징으로 하는 메모리 액세스 충돌 감소 장치.
  3. 제2항에 있어서, 상기 액세스 중재기는
    상기 메모리 액세스 어드레스의 하위비트들을 상기 서브페이지 분할 어드레스로 출력하는 제어기; 및
    상기 서브페이지 분할 어드레스에 대응하는 재분배된 어드레스를 출력하는 서브페이지 분배기를 포함하고,
    상기 제어기는 상기 재분배된 어드레스의 하위비트들을 상기 선택기에 선택신호로 출력하는 것을 특징으로 하는 메모리 액세스 충돌 감소 장치.
  4. 제1항에 있어서, 상기 서브페이지 분배기는
    상기 서브페이지 분할 어드레스가 입력되면 상기 재분배된 어드레스를 출력하는 테이블임을 특징으로 하는 메모리 액세스 충돌 감소 장치.
  5. 복수의 페이지를 포함하고 각 페이지는 복수의 서브페이지들을 포함하는 메모리에 복수의 데이터 처리 엘레멘트들이 동시에 액세스하는 단계;
    상기 서브페이지들을 분할하는 서브페이지 분할 어드레스를 재분배하여 상기 동시 액세스시 각 서브페이지별로 데이터가 동시에 출력되는 단계; 및
    복수의 선택기를 이용하여 상기 단계에서 동시에 출력되는 데이터중 하나를 상기 선택기들별로 각각 선택하여 출력하는 단계를 포함함을 특징으로 하는 메모리 액세스 충돌 감소 방법.
  6. 제5항에 있어서,
    상기 서브페이지 분할 어드레스는 상기 데이터 처리 엘레멘트들로부터 수신한 메모리 액세스 어드레스의 하위비트들에 해당하고,
    상기 메모리 액세스 어드레스는 상기 페이지를 분할하는 상위비트들과 상기 서브페이지에 대한 어드레스를 갖는 중간비트들을 더 포함함을 특징으로 하는 메모리 액세스 충돌 감소 방법.
  7. 제6항에 있어서, 상기 동시 액세스시 각 서브페이지별로 데이터가 동시에 출력되는 단계는
    상기 중간비트들과 상기 재분배된 어드레스를 연결하고, 연결된 어드레스의 하위비트들을 상기 선택기들의 선택신호로 출력하는 단계를 더 포함하는 것을 특징으로 하는 메모리 액세스 충돌 감소 방법.
KR1020070127576A 2007-12-10 2007-12-10 메모리 액세스 충돌 감소 장치 및 방법 KR100922732B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070127576A KR100922732B1 (ko) 2007-12-10 2007-12-10 메모리 액세스 충돌 감소 장치 및 방법
US12/195,153 US7958321B2 (en) 2007-12-10 2008-08-20 Apparatus and method for reducing memory access conflict

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070127576A KR100922732B1 (ko) 2007-12-10 2007-12-10 메모리 액세스 충돌 감소 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090060666A true KR20090060666A (ko) 2009-06-15
KR100922732B1 KR100922732B1 (ko) 2009-10-22

Family

ID=40722875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070127576A KR100922732B1 (ko) 2007-12-10 2007-12-10 메모리 액세스 충돌 감소 장치 및 방법

Country Status (2)

Country Link
US (1) US7958321B2 (ko)
KR (1) KR100922732B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184855A1 (en) * 2012-06-06 2013-12-12 Mosys, Inc. Memory with bank-conflict-resolution (bcr) module including cache

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405688B2 (en) 2013-03-05 2016-08-02 Intel Corporation Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture
KR102357863B1 (ko) * 2014-12-15 2022-02-04 삼성전자주식회사 메모리 접근 방법 및 장치
US20160191420A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Mitigating traffic steering inefficiencies in distributed uncore fabric
US11017128B2 (en) * 2018-05-22 2021-05-25 Seagate Technology Llc Data security using bit transposition during memory accesses
US11347860B2 (en) * 2019-06-28 2022-05-31 Seagate Technology Llc Randomizing firmware loaded to a processor memory
CN114341825A (zh) * 2019-08-29 2022-04-12 阿里巴巴集团控股有限公司 用于在神经网络中提供向量稀疏化的方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393534B1 (en) 1999-09-27 2002-05-21 Ati International Srl Scheduler for avoiding bank conflicts in issuing concurrent requests to main memory
KR100401946B1 (ko) 2001-08-10 2003-10-17 박종원 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
US6717834B2 (en) * 2002-03-26 2004-04-06 Intel Corporation Dual bus memory controller
US7085890B2 (en) 2004-02-19 2006-08-01 International Business Machines Corporation Memory mapping to reduce cache conflicts in multiprocessor systems
KR100726101B1 (ko) * 2005-04-29 2007-06-12 (주)씨앤에스 테크놀로지 메모리 제어 시스템
JP2007241918A (ja) 2006-03-13 2007-09-20 Fujitsu Ltd プロセッサ装置
KR100761848B1 (ko) * 2006-06-09 2007-09-28 삼성전자주식회사 반도체 장치에서의 데이터 출력장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184855A1 (en) * 2012-06-06 2013-12-12 Mosys, Inc. Memory with bank-conflict-resolution (bcr) module including cache
US9496009B2 (en) 2012-06-06 2016-11-15 Mosys, Inc. Memory with bank-conflict-resolution (BCR) module including cache

Also Published As

Publication number Publication date
US20090150644A1 (en) 2009-06-11
US7958321B2 (en) 2011-06-07
KR100922732B1 (ko) 2009-10-22

Similar Documents

Publication Publication Date Title
KR100922732B1 (ko) 메모리 액세스 충돌 감소 장치 및 방법
KR101076869B1 (ko) 코어스 그레인 재구성 어레이에서의 메모리 중심 통신 장치
US5410727A (en) Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
US6381669B1 (en) Multi-bank, fault-tolerant, high-performance memory addressing system and method
US6748480B2 (en) Multi-bank, fault-tolerant, high-performance memory addressing system and method
KR100958264B1 (ko) 메모리 제어기, 데이터 반환 방법 및 시스템
US20090319718A1 (en) Memory controller address mapping scheme
US20050015558A1 (en) Method and apparatus for generating a write mask key
CN112732639B (zh) 一种粗粒度动态可重构处理器及其数据处理方法
TWI473014B (zh) 增強型微處理器或微控制器
JP5302507B2 (ja) プロセッサアーキテクチャ
US8629880B2 (en) Two dimensional memory access controller
KR101553651B1 (ko) 다중 뱅크 메모리 액세스 장치
US7483283B2 (en) Apparatus for efficient streaming data access on reconfigurable hardware and method for automatic generation thereof
CN106227506A (zh) 一种内存压缩系统中的多通道并行压缩解压系统及方法
US8650346B2 (en) Method and bus system for equalizing data information traffic and decoder
US8510514B2 (en) Apparatus, method and data processing element for efficient parallel processing of multimedia data
US20030053367A1 (en) 2-D FIFO memory having full-width read/write capability
US20060206633A1 (en) System and method for DMA transfer
US7636817B1 (en) Methods and apparatus for allowing simultaneous memory accesses in a programmable chip system
Vitkovski et al. Memory organization with multi-pattern parallel accesses
US10412400B1 (en) Memory access ordering for a transformation
US11061642B2 (en) Multi-core audio processor with flexible memory allocation
Peng et al. A parallel memory architecture for video coding
JP3020356B2 (ja) メモリのマッパ回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130923

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140926

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170209

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 10