KR100321496B1 - 듀얼포트 메모리 컨트롤러 - Google Patents

듀얼포트 메모리 컨트롤러 Download PDF

Info

Publication number
KR100321496B1
KR100321496B1 KR1020000024151A KR20000024151A KR100321496B1 KR 100321496 B1 KR100321496 B1 KR 100321496B1 KR 1020000024151 A KR1020000024151 A KR 1020000024151A KR 20000024151 A KR20000024151 A KR 20000024151A KR 100321496 B1 KR100321496 B1 KR 100321496B1
Authority
KR
South Korea
Prior art keywords
memory
signal
external
access
time
Prior art date
Application number
KR1020000024151A
Other languages
English (en)
Other versions
KR20000049908A (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 KR1020000024151A priority Critical patent/KR100321496B1/ko
Publication of KR20000049908A publication Critical patent/KR20000049908A/ko
Application granted granted Critical
Publication of KR100321496B1 publication Critical patent/KR100321496B1/ko

Links

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
    • G06F13/1668Details of memory controller
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0018Industry standard architecture [ISA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)

Abstract

본 발명은 듀얼포트 메모리 컨트롤러(Dual-Port Memory Controller)에 관한 것으로, 듀얼포트 메모리를 억세스 하고자 하는 2개의 독립적인 A,B장치(이하 외부장치라 호칭한다)가 하나의 일반적인 범용 메모리를 동시에 억세스(Access)할 수 있게 하여 주는 장치로써, 각각의 A,B외부장치로부터 메모리 억세스 신호를 받아 독자적인 메모리 억세스 버스를 형성하여 데이터 읽기/쓰기를 기본 동작으로 하고, 2개의 외부장치가 같은 번지의 메모리를 동시에 억세스하고자 할 경우 양쪽의 요구를 빠른 동작으로 시분할 처리하여 동시에 듀얼포드 메모리를 억세스 하기 위해서 A,B외부장치가 복잡한 동작을 행하지 않고 일반적인 메모리(SRAM)를 억세스 하는 것과 동일한 동작을 수행하도록 듀얼포트 메모리 컨트롤러를 구성함을 특징으로 함.

Description

듀얼포트 메모리 컨트롤러{Dual-Port Memory Controller}
본 발명은 듀얼포트 메모리 컨트롤러(Dual-Port Memory Controller)에 관한 것으로, 보다 상세하게 설명하면 듀얼포트 메모리를 억세스 하고자 하는 2개의 독립적인 장치가 하나의 일반적인 범용 메모리를 동시에 억세스(Access)할 수 있게 하여 주는 장치로써, 각각의 외부장치로부터 메모리 억세스 신호를 받아 독자적인 메모리 억세스 버스를 형성하여 데이터 읽기/쓰기를 기본 동작으로 하고, 2개의 외부장치가 같은 번지의 메모리를 동시에 억세스하고자 할 경우 양쪽의 요구를 빠른 동작으로 시분할 처리하여 동시에 억세스할 수 있게 하여 듀얼포드 메모리를 억세스 하기 위해서 외부장치가 복잡한 동작을 행하지 않고 일반적인 메모리를 억세스 하는 것과 동일한 동작을 수행하도록 기능을 갖게 한 듀얼포트 메모리 컨트롤러에 관한 것이다.
통상 듀얼포트 메모리는 하나로 형성된 패키지안에 내장된 범용 메모리와 입/출력 장치로 구성되어 읽고/쓰기 신호를 받아 들여 데이터를 판독하거나 기록할 수 있는 장치이다.
도1은 종래의 듀얼포트 메모리 구성을 도시한 블록도를 도시한 것이다.
도시된 바와 같이 그 구성은 외부장치에 연결되는 2개의 인터페이스부와 이 인터페이스부를 통해 입력/출력되는 신호를 제어하는 제어부와 상기 제어부로부터 입/출력되는 데이터를 저장하거나 읽어 들이기 위한 메모리부로 구성되어 있다.
상기 각각의 인터페이스부는 각각의 외부장치로부터 메모리 억세스 인가신호,읽기/쓰기신호,어드레스신호A0x~A13x(A0L~A13L,A0R~A13R)를 입력 받아서, 상기 제어부에 전달하고 제어부는 입력받은 신호를 분석하여 외부장치의 요구대로 데이터 신호 D0x~D7x(D0L~D7L, D0R~D7R)를 메모리부에 읽고 쓰기를 행한다.
이러한 듀얼포트 메모리가 동작하는 방법을 설명하면 다음과 같다.
2개의 외부장치가 각각 인터페이스부를 통하여 듀얼포트 메모리내에 있는 특정번지의 메모리 영역을 억세스 하기 위해서는 외부장치가 메모리 번지신호 A0x~A13x(여기서 A0x~A13x는 A0L~A13L 또는 A0R~A13R중 하나이다), 메모리 인가신호 , 읽기/쓰기 신호를 송출하게 된다. 이때 제어부가 이 신호를 인지하여 메모리부의 어느 영역을 선택하였는지와 읽기인지 쓰기인지를 판단하여 쓰기인 경우에는 인터페이스부에 입력되는 데이터 신호D0x~D7x(D0L~D7L 또는 D0R~D7R중하나)의 값이 선택되는 메모리 영역에 기록을 하게 되고, 읽기인 경우에는 선택된 메모리영역에서 데이터를 읽어들여 인터페이스부의 데이터 신호D0x~D7x(D0L~D7L 또는 D0R~D7R중하나)로 송출하여 외부장치가 판독할 수 있게 된다.([도5]참조)
도5는 종래의 듀얼포트 메모리 외부장치가 서로 다른 번지영역을 억세스 요구했을 때의 타이밍도로써, L측의 외부장치가 R측 외부장치보다 먼저 메모리부를 억세스하는 것을 요구한 경우의 타이밍도 이다.
이때 L측 외부장치가 요구한 내용은 메부리부에 쓰기요구이고, R측 외부장치가 요구한 내용은 메모리부에서 읽기요구이다. 그리고 L측의 "유효한 번지1"과 R측의 "유효한 번지2"가 서로 틀리기 때문에 듀얼포트 메모리는 양측의 요구를 동시에 수용해 주고 L측의 동작 결과로신호가 논리 "1"로 출력되어 R측이 정상 동작할 수 있음을 표시해 주는 동시에, R측의 동작 결과로신호가 논리 "1"로 출력되어 L측이 정상 동작할 수 있음을 표시한다.
이러한 동작은 독립된 2개의 외부장치가 동시에 메모리부를 선택하여 사용할 수 있게 하여 준다. 하지만 여기에는 약간의 문제점이 있다.
상기 2개의 외부장치가 동시에 메모리부를 선택하는 것은 다음과 같다.
L측 외부장치가 메로리부를 억세스 하기 위해서는 메모리번지 신호(A0L~A13L), 메모리인가신호(), 읽고/쓰기 신호()를 출력후 특정시간(이하, 메모리 억세스 시간이라 한다.)동안 유지 하여야 한다.([도5]의 메모리 억세스시간 참조)
L측 외부장치가 메모리를 선택하여 사용하는 메모리 억세스 시간 안에 R측 외부장치가 메모리부를 억세스 하기 위해서 인터페이스부에 메모리번지 신호(A0R~A13R), 메모리 인가신호(), 읽기/쓰기 신호()를 인가하여 L측과 R측 두개의 요구신호가 하나의 메모리 억세스시간 안에 겹쳐지게 되는 상태를 2개의 외부장치가 동시에 메모리부를 선택한다 라고 말하게 된다.([도5]참조)
여기서 2개의 외부장치가 각각의 인터페이스부를 통하여 동시에 메모리부를 억세스하기 위해서는 2개의 외부장치가 선택한 메모리부의 메모리 번지가 각각 틀릴 경우에만 해당이 된다.
만약, 동시에 동일한 메모리 번지의 영역을 억세스 하고자 하면 신호선의 충돌이 나타나기 때문에 올바른 동작을 수행할 수가 없다.([도6]참조)
이것을 방지하기 위해서 제어부는 2개의 외부장치가 동시에 동일한 메모리영역을 억세스하는 요구가 들어오면 약간이라도 먼저 들어온 쪽을 먼저 실행해 주게 되며, 다른 쪽에는 현재 다른 쪽에서 먼저 해당 번지 영역의 메모리를 억세스하고 있는 중이니 요구를 수행해 줄 수 없다는 신호()를 보내어 다음에 다시 해당 메모리 영역을 억세스할 것을 표시해 준다.
만약 구분할 수 없도록 동시에 동일 메모리 영역에 메모리 억세스 요구가 들어왔다면 제어부는 두개의 요구신호중 하나를 우선적으로 처리하며,
이때 우선처리 상태에서 제외된 요구에 대한 요구를 수행해 줄 수 없다는 신호()를 보내어 다음에 다시 해당 메로리 영역을 억세스할 것을 표시해 준다.([도6]참조)
다만 어느쪽을 먼저 처리해 줄 것인가는 제조회사에서 임의로 결정된다.
도6은 종래의 듀얼포트 메모리를 2개의 외부장치가 서로 같은 번지영역을 억세스 요구했을 때의 타이밍도로써, L측의 외부장치가 R측 외부장치보다 먼저 메모리부를 억세스 하는 것을 요구한 경우의 타이밍도이다.
이때 L측과 R측의 외부장치가 요구한 내용은 메모리부에 쓰기 요구이다. 그리고 L측의 "유효한 번지1"과 R측의 "유효한 번지1"이 서로 같기 때문에 듀얼포트 메모리는 양측의 요구를 동시에 수용해 주기 못하고 먼저 요구한 L측의 요구만 수용하여 쓰기 동작을 실행한다. 이때 R측에 R측의 요구신호를 수행해 줄수 없다는 신호로신호를 논리 "0"으로 출력하여 L측의 요구 수행후 다시 해당 메모리 영역을 억세스할 것을 표시해 준다.
그러나, 상기한 동작에서 알 수 있는 바와 같이, 종래의 듀얼포트 메모리는 다른 외부장치의 읽기/쓰기 사이클 동안 같은 번지를 억세스할 수 없다는 최대의 단점을 지니고 있다.([도6]참조)
예를 들어 일반 PC에서 사용하는 ISA 버스 사이클의 경우를 보면, 한 외부장치가 메모리를 억세스 하고 있으면, 최소 약 160ns에서 최대 약 520ns동안 다른 외부장치는 같은 번지를 전혀 억세스할 수 없다는 문제가 있다.
또한 억세스를 요구 했다가신호를 받으면, 그 신호가 제거될 때까지 기다렸다가 다시 억세스를 시도해야 하므로 처리 장치에 부담을 주게 된다.
이와같이 양 외부장치에서 동시에 같은 번지의 메모리를 억세스할 수 없기 때문에 종래의 듀얼포트 메모리는 고속동작에 있어서 기능저하를 생성시키는 주요 원인이 되고 있다.
또한, 가격이 고가이고, 대용량의 듀얼포트 메모리를 구하기 쉽지 않은 문제도 있다. 더불어, 상기와 같은 이유로 시간적인 면이나 자원 사용의 효율면에서 많은 손실을 일으키는 문제점이 있다.
본 발명은 상기와 같은 종래의 문제점을 해결하기 위해 발명한 것으로, 2개의 외부장치가 하나의 일반적인 범용 메모리에 동시에 또는 매우 짧은 시간 간격동안 억세스할 수 있는 동시에 이를 제어할 수 있는 듀얼포트 메모리 컨트롤러를 제공하는데 있다.
도1은 종래의 듀얼포트 메모리 구성을 도시한 블록도이다.
도2는 본 발명의 듀얼포트 메모리 컨트롤러 구성을 도시한 블록도이다.
도3은 본 발명에 의한 듀얼포트 메모리 컨트롤러의 동작 상태도이다
도4는 본 발명에 따른 듀얼포트 메모리 컨드롤러의 내부신호 흐름을 도시한 블록도이다.
도5는 종래의 듀얼포트 메모리 외부장치가 서로 다른 번지영역을 억세스 요구했을 때의 타이밍도이다.
도6은 종래의 듀얼포트 메모리를 2개의 외부장치가 서로 같은 번지영역을 억세스 요구했을 때의 타이밍도이다.
도7은 본 발명에 따른 듀얼포트 메모리 컨트롤러의 동작 타이밍도이다.
-도면중 주요부호에 대한 설명-
1 : 듀얼포트 메모리 2 : 듀얼포트 메모리 콘트롤러
10 : A외부장치 인터페이스부 10': B외부장치 인터페이스부
20 : 외부 메모리 인터페이스부 30 : 외부 메모리 번지 신호선
40 : 외부 메모리 데이터 신호선 50 : 외부 메모리부
60 : 래치A 70: 래치B
상기한 목적을 달성하기 위하여 본 발명에 의한 듀얼포트 메모리 컨트롤러는 적어도 2개의 외부장치로부터 메모리 억세스 인가 신호, 읽기/쓰기 신호를 입력받고, 상기 외부장치와 데이터 신호를 주고 받는 외부장치 인터페이스부와; 상기 외부장치 인터페이스부로부터 받은 메모리 억세스 인가 신호, 읽기/쓰기 신호를 분석하여, 상기 외부장치 인터페이스부와 데이터 신호를 주고 받는 시분할 제어부와; 상기 시분할 제어부로부터 각종 신호를 입력받아 외부에 메모리를 부착할 수 있도록 메모리 억세스 인가 신호, 읽기/쓰기 신호, 메모리 번지 신호를 출력하여, 상기 시분할 제어부와 데이터 신호를 주고 받는 외부 메모리 인터페이스부와; 상기 외부 메모리 인터페이스부로부터 외부 메모리 억세스 인가 신호 및 외부 메모리 번지 신호를 입력받아 소정의 기억 장소에 데이터를 읽기/쓰기하고, 상기 외부 메모리 인터페이스부와 데이터를 주고 받는 외부 메모리부를 포함하여 이루어진 것을 특징으로 한다.
여기서, 상기 외부 메모리부는 시중에서 값싸게 구할 수 있는 읽기/쓰기 전용메모리인 SRAM으로 구성함이 바람직하다.
이와 같이 하여 본 발명에 의한 듀얼포트 메모리 컨트롤러에 의하면, 두 장치가 동시에 메모리를 억세스할 수 있기 때문에 고속동작을 통하여 기능 향상을 꾀할 수 있는 장점이 있으며, 일반적인 SRAM 등을 이용할 수 있음으로써 가격이 저가이고, 대용량의 듀얼포트 메모리를 쉽게 구현할 수 있게 된다.
더불어, 상기와 같은 이유로 시간적인 면이나, 자원 사용의 효율면에서 많은 잇점을 가지고 있다.
또한, 이러한 듀얼포트 메모리를 필요로 하는 여러 분야에서 손쉽게 널리 사용될 수 있는 잇점이 있다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 첨부된 도면을 참조하여 본 발명의 가장 바람직한 실시예를 상세하게 설명하면 다음과 같다.
도2는 본 발명의 듀얼포트 메모리 컨트롤러 구성을 도시한 블록도이다.
도시된 바와 같이 A,B외부장치 인터페이스부는 A외부장치 및 B외부장치로부터 메모리 번지 신호(A0x~Anx, 여기서 X는 A 또는 B를 말한다),메모리 억세스 인가 신호(CSx#), 읽기/쓰기 신호(R/Wx#)를 입력받고, 상기 외부장치(A외부장치 및 B외부장치)와 데이터 신호를 주고 받을 수 있는 데이터 신호(D0x~Dnx)를 부착하여 외부장치로부터 받은 신호를 시분할 제어부로 신호를 공급해 주는 A외부장치 인터페이스부와 B외부장치 인터페이스부가 구비되어 있다.
여기서 읽고/쓰기 신호(R/Wx#)는 읽기신호(RD#)와 쓰기신호(WR#)로 구분되어 사용될 수도 있다.
2개의 A,B외부장치 인터페이스부와 외부 메모리 인터페이스부 사이에는 시분할 제어부가 있으며, 이 시분할 제어부의 기능은 다음과 같다.
2개의 A,B외부장치 인터페이스부로부터 메모리 번지신호(A0x~Anx), 메모리억세스 인가신호(CSx#), 읽기/쓰기 신호(R/Wx#)를 입력 받아 먼저 요구신호가 들어온 쪽을 우선하여 실행하게 되는데 쓰기신호가 시분할 제어부로 입력된 경우 쓰기 동작을 요구한 외부장치 인터페이스부의 데이터 신호(D0x~Dnx)를 입력받아 외부 메모리 인터페이스부로 출력하고, 읽기신호가 입력된 경우에는 외부 메모리 인터페이스부에서 입력된 데이터를 시분할 제어부 내부에서 임시 저장, 즉 래치(latch)시켜 외부장치 인터페이스부의 데이터 신호(D0x~Dnx)로 출력시켜 읽기 동작 요구를 한 외부장치가 판독 가능하게 처리하여 준 후, 바로 그 다음에 다른 쪽의 요구를 실행하여 주는데 외부장치가 메모리를 선택하여 사용하는 메모리 억세스 시간보다도 50%이상 더 짧은 시간에 한쪽의 요구를 처리해 주고, 나머지 시간에 다른 쪽의 요구를 처리하는 시분할 기법을 사용 하게 되는데, 종래의 방법은 동시에 동일한 메모리 영역을 억세스 요구가 들어 오더라도 약간이라도 먼저 들어온 쪽을 실행해 주며, 다른 쪽에는 현재 다른 쪽에서 먼저 해당 번지 영역의 메모리를 억세스하고 있는 중에는 요구를 수행해 줄 수 없다는 신호(여기서 X는 L 또는 R을 말한다)를 보내어 다음에 다시 해당 메모리를 억세스할 것을 표시하는 것과는 달리 시분할 기법을 사용하면 A,B외부장치는 다른쪽 외부장치의 메모리 억세스 여부를 전혀 신경쓸 필요가 없어 외부 메모리가 자신에게만 귀속된 것처럼 사용할 수 가 있다.
그래서 종래의 듀얼포트 메모리와 같은 기능 저하 현상이 없어지게 되는 것이다.
즉 시분할 제어부는 2개의 외부장치에서 입력받은 요구를 시분할 방식에 의해 차례로 외부 메모리 인터페이스부를 억세스 해 주는 것이 시분할 제어부의 기능이다.
상기 시분할 제어부로부터 각종 신호를 입력받아 메모리 억세스 인가 신호, 읽기/쓰기 신호, 메모리 번지 신호를 출력하며, 상기 시분할 제어부와 데이터 신호를 주고 받을 수 있도록 외부 메모리 인터페이스부가 구비되어 있다.
한편, 상기 외부 메모리 인터페이스부로부터 외부 메모리 억세스 인가 신호 및 외부 메모리 번지 신호를 입력받아 소정의 기억 장소에 데이터를 읽기/쓰기하고, 상기 외부 메모리 인터페이스부와 데이터를 주고 받을 수 있도록 외부 메모리부가 구비되어 있다.
여기서, 상기 외부 메모리부는 일반적인 읽기/쓰기 전용메모리인 SRAM으로 구비함이 바람직하다.
한편, 상기와 같은 듀얼포트 메모리 컨트롤러에서 가장 문제가 되는 것은 2개의 외부장치가 동시에, 또는 짧은 시간 간격을 두고 메모리 억세스 요구를 하는 경우이다.
이 경우 듀얼포트 메모리 컨트롤러는 각 A,B외부장치들의 메모리 억세스 시간 보다 최소한 2배 이상 빨리 메모리 억세스를 하여, 각 A,B외부장치들의 메모리 억세스 시간 내에 데이터의 읽기/쓰기를 완료해서 외부장치로부터 받은 데이터를 메모리에 기억시키거나 메모리에 있는 데이터를 읽어 들여 해당 장치에 전달해야 한다.
예를 들어 ISA 버스를 이용해서 메모리 억세스를 하는 2개의 외부장치가 동시에, 또는 짧은 시간 간격을 두고 메모리 억세스를 요구한 경우를 생각해 볼 수 있다.
일반적인 ISA 버스 읽기/쓰기 시간은 최소 약 160ns에서 최대 약 520ns이므로, 이 사이에 듀얼포트 메모리는 2번 이상의 메모리 억세스를 해야한다. 일반적인 SRAM의 입/출력 최소 사이클은 12~15ns 정도이다. 즉, 하나의 ISA 사이클동안 11번 이상의 메모리 억세스가 가능하다는 것이다. 따라서 두 개의 A,B외부장치가 ISA 버스에서 동시에, 또는 짧은 시간 간격을 두고 메모리 억세스를 요구하더라도, 본 발명에 의한 듀얼포트 메모리 컨트롤러는 독립적인 메모리 억세스 버스를 형성하여, 단 1회의 ISA버스 읽고/쓰기 시간내에 충분히 두 A,B외부장치에 대한 메모리 억세스를 해줄 수 있다.
이렇게 메모리에 적합한 읽고/쓰기 억세스 사이클을 만들어서 고속의 메모리 억세스 동작을 가능하게 하는 것이 본 발명의 듀얼포트 메모리 컨트롤러가 가지는 가장 큰 특징이다.
또한 이런 방법으로 동작을 하기 때문에, 2개의 외부장치가 같은 번지의 메모리에 대한 억세스를 동시에 또는 짧은 시간 간격을 두고 요구했을 때에도 별 문제없이 시분할 방식에 의하여 데이터를 순차적으로 처리할 수 있게 해준다.
이러한 동작의 구현을 위해서 본 발명에 의한 듀얼포트 메모리 컨트롤러는 클럭에 동기하여 상태를 옮겨가는 방법을 택했다.
도3은 상기의 동작 상태를 나타낸 본 발명에 의한 듀얼포트 메모리 컨트롤러의 동작 상태도이다.
도시된 바와 같이 본 발명의 듀얼포트 메모리 컨트롤러 내부에 A0 상태와 B0 상태를 지정해두고, 두 상태를 클럭이 동기하여 차례로 옮겨가면서 해당되는 외부장치에서 메모리 억세스 요구가 있는지를 검사한다. 요구가 없으면 계속해서 A0상태에서 B0상태로 다시 B0상태에서 A0상태로 천이하고, 요구가 있게 되면 해당 상태의 메모리 억세스 요구 사이클로 들어가서 요구를 처리하고, 끝나면 다음 상태로 다시 옮겨간다.
예를들어 A0상태에 있고, A에 해당하는 외부장치측의 메모리 억세스 요구가 없으면 B0 상태로 옮겨간다. B 에 해당하는 외부장치 측의 메모리 억세스 요구가 없으면 다시 A0 상태로 옮겨 간다.
이런 동작을 반복하다가 A0 상태에서 A측 외부장치의 메모리 억세스 요구가 있으면 A1 상태로 옮겨가고 차례로 A2, A3 상태로 옮겨가면서 요구를 처리한다.
그리고 나서 B0 상태로 옮겨가서 B측의 요구 여부를 검사한다.
B측의 요구가 있으면 B1-> B2-> B3 상태로 옮겨가면서 요구를 처리한다.
그리고 다시 A0로 옮겨간다. 이런 방법으로 듀얼포트 메모리 컨트롤러를 구현하는 것이다.
앞에서도 말했듯이, 2개의 A,B외부장치가 같은, 또는 짧은 시간 간격을 두고 메모리 억세스를 요구했을 때, 원할히 처리하기 위해서 다음과 같은 계산을 통하여 알수가 있다.
상기 A,B외부장치의 메모리 억세스 요구시간이 각각 A,B 라고 하고, 만약 B의 시간이 A의 시간보다 더 짧다면 B의 시간이 기준이 된다.
B시간 안에 8번의 상태천이가 있으나 동작의 안정성을 확보하기 위해서 두 상태를 더하여 계산하면 B/10=C가 된다.
즉, 한 상태의 유지시간은 B시간을 10으로 나눈 C시간이 되고 이것을 주파수로 환산하면 시분할 제어부의 동작 주파수가 결정되며, 이 주파수는 A,B시간을 고려하여 적절한 것을 선택하여 사용하면 된다.
또한 동작 주파수는 1/C이며 위의 내용을 예를들어 보면 다음과 같다.
A메모리 억세스 시간을 최소 약 520ns, B메모리 억세스 시간을 160ns라고 본다면 160ns가 기준이 되며, 이것을 10으로 나누면 16ns가 된다.
이것은 시분할 제어부에 입력되는 기준 동작 클럭의 1주기 시간이며, 이것을 주파수로 환산하면 1/16ns=62.5MHz의 시분할 제어부의 동작 주파수가 계산된다.
즉, 시분할 제어부에 입력되는 기준 클럭은 62.5MHz와 같거나 더 빠른 것을 사용하면 양측의 동작을 동시에 수행해 주는 성능을 발휘하게 되는 것이다.
이는 해당 외부장치의 버스 사이클에 따른 것이므로, 필요에 따라 임의대로 클럭을 빠르게 또는 느리게 할 수도 있을 것이다.
이 상태에 따라 동작하는 방법은 다음과 같다.
도4은 본 발명에 따른 듀얼포트 메모리 컨드롤러의 내부신호 흐름을 도시한 블록도를 나타낸 것이고,
도7은 본 발명에 의한 듀얼포트 메모리 컨트롤러의 타이밍도이다.
그리고 도3과 도4의 본 발명에 따른 듀얼포트 메모리 컨드롤러의 내부신호 흐름을 도시한 블록도를 참조하여 보다 구체적으로 설명하면, 먼저 모든 메모리 읽기/쓰기 신호(R/WA#, R/WB#, ER/W#)는 1개의 신호선에 동시에 표시 되었으나 읽기 신호(RDA#, RDB#. ERD#)와 쓰기 신호(WRA#, WRB#, EWR#)2가지가 구분되어 사용되어도 동작상에 전혀 상관이 없고 [도7]의 타이밍도에서도 각각 나누어 표시하고 있음을 보여주고 있다.
A0상태에서는 A측의 요구 즉, CSA#이 논리 '0'로 입력 되었는가를 검사하며, B0상태에서는 B측의 요구 즉, CSB#가 논리 '0'로 입력 되었는가를 검사한다.
만약 A0상태에서는 CSA#이 논리 '0'로 입력 되었으면(도7의 ①참조)억세스 요구로 인정하여 A측 시분할 동작(A0->A1->A2->A3->B0)을 수행하게 된다.
먼저, A0상태에서 A외부장치 인터페이스부에서 입력된 A0A~AnA까지의 번지 신호선 정보(AA)를 외부 메모리 인터페이스부를 통해서 EA0~EAn까지의 외부 메모리번지 신호선(30)으로 출력시킨다.([도7]의 ⑦참조)
그리고 A측의 요구동작이 쓰기 동작([도7]의 ②참조, 또는 ⓐ참조)이면 A외부장치 인터페이스부(10)에서 입력된 D0A~DnA까지의 데이터 신호선 정보(DA, [도7]의 ③참조, [도4]참조)를 외부 메모리 인터페이스부(20)를 통해서 ED0~EDn까지의 외부 메모리 데이터 신호선(40)(DA, [도7]의 ⑬참조)으로 출력시킨후 A1상태로 이동한다.
A1상태에서 B측의 요구 즉, CSB#가 논리 '0'으로 입력이 된 상태([도7]의 ④참조)이거나 현재 A측 시분할 동작이 수행중인 상태이기 때문에 시분할 동작이 종료될 때까지 요구 수용이 연기 되어진다.
A1상태에서는 A측의 요구로 기인한 메모리 인가신호(ECS#, [도7]의 ⑨)및 메모리 쓰기신호(ER/W#, [도7]의 ⑪참조, 또는 ⓒ참조)가 외부 메모리 인터페이스부(20)를 통해서 활성화 상태로 출력된다. 이것으로써 ED0~EDn상에 나타나 있던 데이터(DA, [도7]의 ⑬참조)는 외부 메모리부(50)에 저장되며, 시분할 제어부는 A2상태로 이동하게 된다.
A2상태에서는 이미 출력된 신호선을 변화없이 유지시키는 상태이다. 이것은 메모리에 읽기/쓰기의 동작을 확실히 하기 위해서 유지시간을 지켜 주는 것이고 바로 A3상태로 이동하게 된다.
이 유지시간은 유무에 관계 없이 동작에는 문제가 없으나 유지시간이 없게 되면 동작 속도가 빠른 외부 메모리를 필요로 하게 될 뿐이며, 이 경우에는 A2상태가 필요없어지기 때문에 시분할 제어부가 더 빠르게 시분할 기능을 수행할 수가 있게 된다.
A3상태에서는 이미 출력된 신호중 일부분을 비활성화 상태로 반전 시킨다.
즉, ER/W# 또는 EWR#신호를 논리 '1'로 비활성화 상태로 반전시켜 메모리 쓰기 기능에서 메모리에 아무런 동작이 수행되지 않는 상태로 이동시키는 것이다.
그후 바로 B0상태로 이전하며, 새로운 시분할 기능을 수행하게 된다.
B0상태에서는 B측의 동작 요구와 상관없이 앞 상태(A3)에서 마무리되지 않은 신호(EA0~EAn,ECS#)를 비활성화 시키고, 만약 B측의 동작 요구신호([도7]의 ④참조)가 있으면 바로 B측 시분할 동작(B0->B1->B2->B3->A0)을 수행하게 된다.
먼저 B0상태에서 B외부장치 인터페이스부(10')에서 입력된 A0B~AnB까지의 번지 신호선 정보(AB)를 외부 메모리 번지 신호선(30)으로 출력시킨다.([도7]의 ⑧참조)
그리고 B측의 요구동작이 쓰기 동작이 아닌 읽기 동작이기 때문에 더 이상의 동작 수행 없이 B1상태로 이동한다.
B1상태에서는 B 측의 요구로 기인한 메모리 인가신호(ECS#, [도7]의 ⑩참조)및 메모리읽기 신호(ER/W#, [도7]의 ⑫참조 또는 ⓓ참조)가 외부 메모리 인터페이스부(20)를 통해서 활성화 상태로 출력된다.
이것으로써 외부 메모리(50)는 현재 번지 AB에 의해서 선택되어진 메모리 장소에서 유효한 의미를 지닌 데이터 XDB([도7]의 ⑭참조)를 ED0~EDn외부 메모리 데이터 신호선(40)상에 출력시킨다.
이 정보는 바로 시분할 제어부를 거쳐 래치 입력단인 YYD0B~YYDnB 상([도7]의 ⑮참조, [도4]참조)에 나타나며 바로 시분할 제어부의 상태는 B2 상태로 이동한다.
B2 상태에서는 이미 출력된 신호선을 변화없이 유지시키는 상태이다.
이것은 메모리에 읽기/쓰기의 동작을 확실히하기 위해서 유지 시간을 지켜주는 것이고 바로 B3상태로 이동하게 된다.
역시, 상기 유지시간은 유무에 관계없이 동작에는 문제가 없으나 유지시간이 없게되면 동작속도가 더 빠른 외부 메모리를 필요로 하게될 뿐 이며, 이 경우에는 B2상태가 필요없어지기 때문에 시분할 제어부가 더 빠르게 시분할 기능을 수행할 수가 있게 된다.
B3상태에서는 래치 활성화 신호, LENB([도7]의참조, [도4]참조)를 출력시켜 YYD0B~YYDnB상 ([도7]의 ⑮참조)의 XDB 값이 래치B(60')에 저장이 되게 되며 그 결과로 YD0B~YDnB상에 데이터 DB([도7]의참조, [도4]참조)값이 나타나게 된다.
이 값은 다시 B외부장치 인터페이스부(10')의 데이터 버스 신호선 D0B~DnB([도7]의 ⑥참조, [도4]참조)상에 나타나 B측 외부장치가 판독할 수 있게 된다.
여기서 임시 저장장치인 래치(60,60')를 시분할 제어부와 외부장치 인터페이스부(10,10')사이에 주는 것은 시분할 제어부의 동작이 빨라 짧은 시간 동안만 외부메모리를 읽기 때문에 느리게 동작하는 외부장치를 위해서 읽은 데이터를 외부장치의 읽기 버스 사이클 끝까지 유지할 필요가 있기 때문이다.
[도7]의 ⑭와 ⑮에 나타나 있듯이 XDB의 값은 B1에서 A0까지만 나타나기 때문에 B측의 읽기 버스 사이클의 시간 즉, CSB#가 논리 '0'의 상태를 유지하는 시간까지 XDB값을 유지할 수가 없다. 이 XDB값을 B측의 읽기 버스 사이클 끝까지 유지하는 위해서는 XDB값을 래치시켜야 만 하는 것이다.([도7]의참조)
이 값이 래치된 결과([도7]의과 ⑥참조)에 의하여 B측 외부장치가 안전하게 메모리 데이터(XDB->DB)를 읽어갈 수 있는 것이다.
이 모든 것을 수행한 시분할 제어부는 다시 A0상태로 이전하게 되며 새로운 시분할 기능을 수행하게 된다.
A0상태에서는 A측의 동작요구와 상관없이 앞 상태(B3)에서 마무리 되지 않은 신호(EA0~EAn, ECS#, ERD#, LENB)를 비활성화 시키며 만약, A,B측의 동작 요구신호를 기다리는 상태가 되도록 본 발명에 의한 듀얼포트 메모리 컨트롤러를 구성한 것이다.
비록 본 발명은 이상에서와 같은 실시예에 한하여 설명하였지만 여기에만 한정되지 않으며, 본 발명과 동일한 기법을 갖는 메모리 영역상에 I/O 포트를 갖는 듀얼 I/O 포트 어레이나 I/O영역상에 듀얼포트 I/O어레이 모두에 본 발명의 법주와 사상에서 벗어남이 없이 동업자에 의해 여러가지의 변형과 수정이 이루어질 수 있을 것이다.
이와 같이 하여 본 발명에 의한 듀얼포트 메모리 컨트롤러에 의하면, 두 장치가 동시에 메모리에 억세스할 수 있기 때문에 고속의 기능 향상을 꾀할 수 있는 효과가 있다.
또한, 일반적인 읽기/쓰기 전용메모리인 SRAM 등을 이용할 수 있음으로써 가격이 저가이고, 대용량의 듀얼포트 메모리를 쉽게 구현할 수 있는 효과가 있고,
상기와 같은 이유로 시간적인 면이나, 자원 사용의 효율면에서 많은 잇점을 가지는 효과가 있으며,
또한, 이러한 듀얼포트 메모리를 필요로 하는 여러 분야에서 손쉽게 널리 사용될 수 있는 효과가 있다.

Claims (2)

  1. 메모리 어드레스신호 및 메모리 데이터신호를 포함하여 억세스 인가신호, 각종 신호를 입/출력하는 외부장치에 있어서,
    상기 외부장치로부터 외부장치 인터페이스부(10,10')를 거쳐 받은 신호를 분석하여 소정의 어드레스신호를 구성하고 데이터신호 및 메모리 억세스 인가신호, 각종 신호를 입/출력하는 외부장치 인터페이스부(10,10')에 연결되어 데이터 신호를 주고 받는 시분할 제어부와;
    상기 시분할 제어부로부터 각종 입/출력 신호를 받아 메모리 인가신호, 읽기/쓰기신호, 메모리 어드레스신호를 출력하고, 상기 시분할 제어부와 데이터 신호를 주고 받는 외부 메모리 인터페이스부(20)와;
    상기 외부 메모리 인터페이스부(20)로부터 외부 메모리 억세스 인가신호와 메모리 어드레스 및 데이터신호를 입/출력받아 소정의 기억장소에 데이터의 읽기/쓰기를 하는 외부 메모리 인터페이스부(20)를 거쳐 데이터를 주고 받는 외부 메모리부(50)를 포함하여 이루어진 것을 특징으로 하는 듀얼포트 메모리 컨트롤러.
  2. 제1항에 있어서, 상기 외부 메모리부(50)는 SRAM인 것을 특징으로 하는 듀얼포트 메모리 컨트롤러.
KR1020000024151A 2000-05-04 2000-05-04 듀얼포트 메모리 컨트롤러 KR100321496B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000024151A KR100321496B1 (ko) 2000-05-04 2000-05-04 듀얼포트 메모리 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000024151A KR100321496B1 (ko) 2000-05-04 2000-05-04 듀얼포트 메모리 컨트롤러

Publications (2)

Publication Number Publication Date
KR20000049908A KR20000049908A (ko) 2000-08-05
KR100321496B1 true KR100321496B1 (ko) 2002-01-24

Family

ID=19668100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000024151A KR100321496B1 (ko) 2000-05-04 2000-05-04 듀얼포트 메모리 컨트롤러

Country Status (1)

Country Link
KR (1) KR100321496B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100792213B1 (ko) 2005-08-11 2008-01-07 삼성전자주식회사 메모리 컨트롤러와 메모리를 인터페이싱하는 랩퍼 회로

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725099B1 (ko) 2005-12-22 2007-06-04 삼성전자주식회사 멀티패쓰 억세스블 반도체 메모리 장치에서의 메모리확장구조
KR100831971B1 (ko) * 2006-09-25 2008-05-23 엠텍비젼 주식회사 듀얼 메모리 인터페이스를 가지는 듀얼 포트 메모리 장치,메모리 장치 및 듀얼 포트 메모리 장치 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100792213B1 (ko) 2005-08-11 2008-01-07 삼성전자주식회사 메모리 컨트롤러와 메모리를 인터페이싱하는 랩퍼 회로

Also Published As

Publication number Publication date
KR20000049908A (ko) 2000-08-05

Similar Documents

Publication Publication Date Title
US6625699B2 (en) Multi-port memory device with multiple modes of operation and improved expansion characteristics
US20070055813A1 (en) Accessing external memory from an integrated circuit
US5119480A (en) Bus master interface circuit with transparent preemption of a data transfer operation
JPH04287261A (ja) データ転送制御装置および磁気ディスク制御装置
US8707002B2 (en) Control apparatus
EP1295295A1 (en) Integrated circuit with flash bridge and autoload
JP3039557B2 (ja) 記憶装置
KR100321496B1 (ko) 듀얼포트 메모리 컨트롤러
JPH0496454A (ja) 通信制御方式
KR101022473B1 (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
CN109271333A (zh) 一种sram控制方法及控制器、控制系统
CN111459560A (zh) 基于risc-v架构的多核处理器唤醒系统
JPH0528770A (ja) マルチポートメモリ回路
EP1156421B1 (en) CPU system with high-speed peripheral LSI circuit
CN214253209U (zh) 一种sdram控制器用户接口模块ip核
KR0157457B1 (ko) 로보트의 제어방법
JP2822414B2 (ja) デュアルポートメモリ
JPH06301631A (ja) メモリ制御回路
KR19990048059A (ko) 입출력 인터페이스장치
JPH05234356A (ja) 半導体記憶装置、及び通信制御システム
JP2000267985A (ja) メモリコントローラおよびメモリアクセス制御方法
JPH1083373A (ja) プログラマブルコントローラ
JPH0321941B2 (ko)
JPH04254985A (ja) Dram制御装置
JPH03220654A (ja) マイクロコンピュータ

Legal Events

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

Payment date: 20130115

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20141111

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20151113

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 17

FPAY Annual fee payment

Payment date: 20190124

Year of fee payment: 18