KR20030014023A - 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치 - Google Patents

주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치 Download PDF

Info

Publication number
KR20030014023A
KR20030014023A KR1020010048343A KR20010048343A KR20030014023A KR 20030014023 A KR20030014023 A KR 20030014023A KR 1020010048343 A KR1020010048343 A KR 1020010048343A KR 20010048343 A KR20010048343 A KR 20010048343A KR 20030014023 A KR20030014023 A KR 20030014023A
Authority
KR
South Korea
Prior art keywords
data
memory
addresses
address
linear
Prior art date
Application number
KR1020010048343A
Other languages
English (en)
Other versions
KR100401946B1 (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 KR10-2001-0048343A priority Critical patent/KR100401946B1/ko
Priority to JP2001262291A priority patent/JP3802783B2/ja
Priority to CNB01132936XA priority patent/CN1306416C/zh
Priority to US10/106,542 priority patent/US6845423B2/en
Publication of KR20030014023A publication Critical patent/KR20030014023A/ko
Application granted granted Critical
Publication of KR100401946B1 publication Critical patent/KR100401946B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

pq 개의 PE(Processing Element)를 가진 SIMD 처리기에서의 M×N 배열내 자료들에서 임의의 위치에서 일정 간격을 가진 4방향의 블록(pq)형태와 8방향의 선분형태인 pq개의 자료 요소들을 동시에 접근할 수 있게 지원하여 기억 장치 접근시간을 감소시키기 위한 충돌 회피 기억 장치에 관한 것으로서, 이전의 기억 장치와 비교하여 자료 접근형태, 간격, 자료 배열의 크기에 제한, 그리고 하드웨어 비용, 속도, 복잡도면에서 개선된 충돌회피 기억장치 및 이를 이용한 주소계산 및 자료이동방법이다.

Description

충돌회피 기억 장치 및 이를 이용한 주소계산과 자료이동방법 {A conflict-free memory system and a method of address calculation and routing via the system}
본 발명은 기억장치에 관한 것으로서, 보다 상세하게는 pq 개의 PE(Processing Element)를 가진 SIMD 처리기에서의 M×N 배열내 자료들에서 임의의 위치에서 일정 간격을 가진 4방향의 블록(pq)형태와 8방향의 선분형태인 pq개의 자료 요소들을 동시에 접근할 수 있게 지원하여 기억 장치 접근시간을 감소시키기 위한 충돌 회피 기억 장치에 관한 것이다.
일반적인 제어 장치로 구성된 단일 명령 다중 자료(SIMD)처리기, SIMD 명령 프로그램이 저장되어 있는 공유기억 모듈, 충돌 회피 기억 장치가 포함된 많은 PE(Processing Element)들이 응용분야들에서 도 1에서처럼 주기억장치가 있는 주컴퓨터에 부착되어 사용된다.
영상처리 연산들[ M. J. B. Duff, Computing structures for image processing, Academic Press, 1983. , J. L. Potter, IEEE Computer , vol. 16, No. 1, pp. 62-67, Jan. 1983. , K. Preston, Jr., IEEE Computer, vol. 16, No. 1, pp. 36-47, Jan. 1983. , T. J. Fountain, K. N. Matthews, and M. J. B. Duff, IEEE Trans. PAMI , vol. 10, No. 3, pp. 310-319, May 1988. ,H. S. Wallace and M. D. Howard, IEEE Trans. PAMI, vol. 11, No. 3, pp. 227-232, Mar. 1989. , L. A. Schmitt and S. S. Wilson, IEEE Trans. PAMI, vol. 10, No. 3, pp. 320- 330, May 1988. , V. Dixit and D. I. Moldovan, IEEE Trans. PAMI, vol. 9, No. 1, pp. 153-160, Jan. 1987., L. Uhr, Parallel computer vision, Academic press, 1987. , A. Rosenfeld, Multiresolution image processing and analysis, Springer- Verlag, 1984. , G. Y. Kim, Parallel memory architectures for image processing and wavelet-based video coding , Ph.D. thesis, Korea Advanced Institute of Science and Technology, 1999., G. A. Baxes, Digital image processing, Prentice-Hall, 1984., H. E. Burdick, Digital imaging, McGraw-Hill, 1997.], 양방향 병합 정렬[E. Horowitz and S. Sahni, Data structures in pascal, Computer Science Press, 1984.], 연속적인 이중 고속 퓨리에 변환[J. W. Cooley, P. A. W. Lewis, and P. D. Welch, IEEE Trans. Educ., vol. E-12, No.1, pp. 27-34, 1969., D. T. Harper III and D. A. Linebarger, "Storage schemes for efficient computation of a radix 2 FFT in a machine with parallel memories," in Proc. 1988 Int. Conf. Parallel Processing , 1988.], 재귀적 배가(recursive doubling)[H. S. Stone, High-performance computer architecture, Addison Wesley, 1993.], 기본적인 행렬 연산[D. J. Kuck and R. A. Strokes, IEEE Trans. Comput. vol. C-31, pp.362-376, May 1982.]등의 분야에 응용된다. 이러한 응용분야를 위해, 충돌회피 기억 장치로부터 자료들의 접근형태, 기준좌표, 자료간의 간격을 가지고 자료들을 찾고 그 자료들을 PE에 할당하는 명령을 SIMD 컴퓨터의 제어 장치로 보낸 후, 제어장치에 의해 각기 다른 자료를 가지고 같은 형태의 계산을 수행하도록 한다. 그래서 SIMD 처리기의 효율성을 위해 기억 장치의 중요한 목표는 다음과 같다.
1. 다양한 부배열 접근형태와 간격 : 기억 장치는 0이 아닌 양수 간격을 가지고 있는 자료들에 대해 다양한 형태의 동시접근을 지원해야 한다.
2. 위치 제약 없는 동시접근 : 동시 접근되는 자료의 위치는 주어진 자료 배열 내에서 어디든 가능해야 한다.
3. 간단하고 빠른 주소계산과 이동회로 : 주소계산과 이동은 간단하고 빨라야 한다.
4. 간단하고 빠른 자료 이동회로 : 자료의 이동은 간단하고 빨라야 한다.
5. 부하 없는 PE들 : 주소계산과 이동, 자료이동은 PE에 부하 없이 기억 장치 내에서 수행되어야 한다. 그래서 PE들과 기억 장치사이에 인터페이스로 자료 레지스터가 있다.
6. 적은 수의 기억 모듈 : 기억 장치의 기억 모듈 수는 PE수와 같거나 큰 범위에서 가능한 적게 해야한다.
다중기억 모듈을 가진 기억 장치의 효율성 증대가 저장장치체제 분야에서 오랫동안 연구되어 왔다. 그것들 중 하나가 연속적인 기억 장치 접근 요구에 대한 모듈들의 기억 장치 접근 시간을 겹치게 하는 것인데[D. T. Harper III, IEEE Trans. Parallel Distrib. Syst ., vol. 2, pp.43-51, Jan. 1991., D. T.Harper III, IEEE Trans. Comput ., vol. C-41, pp.227-230, Feb. 1992.] 앞에서 언급한 SIMD처리기에는 적합하지 않다.
SIMD 처리기를 위한 기억 장치의 간단한 저장장치는 기억 장치를 인터리빙시키는 것인데 기억 장치의 기억 모듈 수를 m이라고 할 때 주소 a는 (a mod m) 의 기억 모듈에 위치한다. 인터리빙된 기억체제의 기억 모듈 수는 SIMD처리기의 PE수와 같아서 주소계산과 자료이동이 간단히 구현되기 때문에 이러한 체제가 많은 SIMD처리기에 포함되어 왔다. 불행히도 인터리빙되어진 체제는 일정 간격에 의해 연관된 다양한 부배열 접근형태 자료들의 동시접근을 지원하지 않기 때문에 기억 모듈에서 충돌로 인해 성능이 떨어진다.[W. Oed and O. Lange, IEEE Trans. Comput ., vol. C-34, pp. 949-957, Oct. 1985., D. Baily, IEEE Trans. Comput ., vol. C-36, pp. 293-298, Mar. 1987.]
다른 한편으로 인터리빙된 기억 장치에서의 평균적인 성능을 개선시키는 제안이 있어 왔지만 그것은 SIMD 처리기를 위해서 매우 유용하지는 않다. 그것은 같은 모듈을 요청하는 기억 요구의 충돌로 인해 SIMD 처리기의 모든 PE들의 계산이 모두 지연되기 때문이다.
저장장치 체제의 또 다른 분야는 여러 사람들에 의해 연구된 비선형분야이다. 대부분의 비선형적 사선방식은 Batcher[K. Batcher, IEEE Trans. Comput ., vol. 26, no. 1, pp. 174-177, 1977.]에 의해 처음 고안된 비트 연산 XOR에 기반을 두고 있다. Frailong에 의해 일반화되어진 XOR방식은 자료 주소점의 곱과 행렬의 변형으로 저장 위치를 계산한다. XOR방식은 2의 승수 개의 기억 모듈에서 자료의 주소계산과 이동이 간단하다. 그러나 이 방식은 자료의 부배열 접근형태, 자료간의 간격, 자료의 위치가 제한적이다.
기억 장치의 또 다른 체제는 선형적인 사선방식이다.
행렬의 (i, j)에 위치된 자료는 (ai+bj)mod m의 기억 모듈에 위치된다. 여기서 a, b는 상수이고 m은 기억 모듈 수를 나타낸다. 선형사선방식은 Budnik과 Kuck[P. Budnik and D. J. Kuck, IEEE Trans. Comput ., vol. C-20, pp.1566-1569, Dec. 1971.]에 의해 처음으로 제안되었고 이 방식의 특성들은 Shapiro[H. Shapiro, IEEE Trans. Comput ., vol. C-27, no. 5, pp. 421-428, May 1978.]와 Wijshoff와 Van Leeuwen[H. Wijshoff and J. Van Leeuwen, IEEE Trans. Comput ., vol. C-34, no. 6, pp. 501-505, June 1985., H. Wijshoff and J. Van Leeuwen, IEEE Trans. Comput ., vol. C-36, no. 2, pp. 233-239, Feb. 1987.]에 의해 연구되었다. Budnik와 Kuck, Shapiro, Wijshoff와 Van Leeuwen와 Lawrie[D. H. Lawrie, IEEE Trans. Comput ., vol. C-24, no. 12, pp. 1145-1155, Dec. 1975.]는 만약 자료의 수 보다 큰 소수개의 기억 모듈이 있다면 블록, 행, 열, 대각선, 역대각선 접근형태의 부배열 내에 충돌 없이 동시에 자료들을 접근할 수 있는 기억 장치에 대해 증명했다. 선형 사선 방식의 단점은 주소계산, 주소이동, 자료이동에서 m개의 기억 모듈 주소가 함께 계산되어질 때 복잡하고 느리다는 것이다. 그리고 시간이 많이 걸리는 모듈로(m) 계산을 피하기 위해 자료의 수가 2의 멱(power)인 경우 기억 모듈 수를 동시접근 되는 자료 수의 2배로 해야 한다는 것이다.
[표 1a] 및 [표 1b]는 선형사선 방식에서의 목표 1) - 6)을 실현할 SIMD처리기에 대한 저장기술, 선형유무, 이동방법, 부배열 접근형태, 간격, 하드웨어 구현, 동시성, 접근 위치, PE들의 부하 그리고 기존의 기억 장치와 본 발명에서 제시된 기억 장치의 기억 모듈 수 등을 보여주고 있다.
한편, 영상처리에서 전체적인 기억 장치 접근시간을 줄이기 위해 블록, 열, 행, 대각선 또는 역대각선 형태의 여러 영상점을 동시 접근할 수 있는 SIMD 처리기[G. Y. Kim, Parallel memory architectures for image processing and wavelet-based video coding , Ph.D. thesis, Korea Advanced Institute of Science and Technology, 1999.]가 요구된다. 영상점의 산술연산과 논리 연산을 위해 디지털 이미지 프로세싱[G. A. Baxes, Digital image processing, Prentice-Hall, 1984.],블록, 열, 행 접근형태의 영상점들이 병렬적으로 연산될 수 있게 각 PE들에 할당되어야 한다. Wavelet 트랜스폼[K. R. Castleman, Digital image processing, Prentice-Hall, 1996., S. Mallat, IEEE Trans. PAMI , vol. 11, No. 7, pp. 674-693, July 1989.]에서는 열과 행 접근형태의 영상점들을 접근하는 기억 장치가 필요하다. 2n2x 2n2개의 PE들로 2n1x 2n1크기 영상의 가장자리 탐색, 컨벌루션 저대역필터들[G. A. Baxes, Digital image processing, Prentice-Hall, 1984., H. E. Burdick, Digital imaging, McGraw-Hill, 1997., J. R. Parker, Algorithms for Image Processing and Computer Vision, John Wiley & Sons, 1997., D. H. Ballard and C. M. Brown, Computer Vision, Prentice-Hall, 1982., J. S. Lim, Two-dimensional signal and image processing, Prentice-Hall, 1990.]과 같은 근접연산들을 하기 위해, 각 PE는 하나의 3 x 3 블록이나 4 x 4 블록을 할당받아야 하고, 3이나 4간격을 가지는 크기가 2n2x 2n2인 블록의 기억 장치 접근이 필요하다. 2n1x 2n1크기 영상에서 2n2x 2n2개의 PE가 8 x 8 DCT(Discrete Cosine Transform)[ K. R. Rao and P. Yip, Discrete Cosine Transform, Academic Press, 1990.]처리를 위해, 각 PE는 8 x 8 블록을 할당받아야 하고, 8간격을 가진 2n2x 2n2블록의 기억 장치 접근이 필요하다. 움직임 추정[J. S. Lim, Two-dimensional signal and image processing, Prentice-Hall, 1990.]에서 16 x 16블록의 참조 영상과 16 x 16블록의 이전 영상의 빠른 비교를 위해 1, 2, 4간격인 블록의 기억 장치 접근이 필요하다. 2 x 2, 3 x 3의 부분 샘플링 방법을 사용하는 연속적인 전송[ W. Y. Kim, P. T. Balsara, D. T. Harper, and J. W. Park, IEEE Trans. Circuits and Systems for Video Technology , vol. 5, No.1, pp.1-13, Feb. 1995.]에서는 기억 장치 접근 시간을 줄이기 위해, l 이 정수라고 할 때 간격이 2l이나 3l인 블록 형태의 자료들이 동시에 접근되어야 한다.
다른 예로는 압축, 문자분석, 움직임 분석들에 사용되는 가우시안 피라미드[A. Rosenfeld, Multiresolution image processing and analysis, Springer- Verlag, 1984., P. J. Burt, Comput. Vision, Graphics, Image processing 16, pp.20-51, 1981., P. J. Burt, Comput. Vision, Graphics, Image processing 21, pp.368-382, 1983.]나 계층 이산 상관 윈도우 함수(Hierarchical Discrete Correlation window Function)를 빨리 구현할 수 있다. K레벨의 재귀적이거나 직접적인 계산을 위해 전 레벨의 모든 노드값이나 0레벨의 모든 2번째 노드값이 SIMD처리기의 각 PE에 할당되어야 한다. 그래서 충돌회피 기억 장치는 가우시안 피라미드의 생성[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에 대해 전체적인 기억 장치 접근 시간 감소를 위해, 임의의 위치에서 l≥0에 대해 간격 2l을 가지는 블록이나 행 형태의 영상점들을 동시에 접근하도록 지원한다. 한열의 노드수가 PE수보다 적게 있는 레벨의 경우에는 행 형태보다는 블록 형태로 영상점을 동시 접근하는 것이 더 좋다. 또한 일부영상의 빠른 90도회전이나 반사영상을 위해 다음 장에서 설명하게 될 4방향의 블록 접근형태 영상점들을 접근하는 기억 장치가 필요하다. 45도나 5도씩[ J. W. Park, "Efficient image analysis and processing memory system, Korea patent 58542, 1993; Efficient image analysis and processing memory system, Japan Patent 2884815, 2000., J. W. Park, S. R. Maeng, and J. W. Cho, Int. J. of High Speed Computing , vol. 2, No. 4, pp.375-385, Dec. 1990.] 일부 영상의 빠른 회전을 위해서도 8방향의 선형영상점들을 접근 할 수 있는 기억 장치가 필요하다.
양방향 병합 정렬알고리즘, 연속적인 증가 FFT 알고리즘, 재귀적인 증가 알고리즘, 행렬, 신호처리등을 위해 블록, 열, 행, 대각선, 역대각선 접근형태의 자료들을 동시에 접근 할 수 있는 기억 장치가 전체적인 기억 장치 접근 시간을 줄이기 위한 SIMD처리기에 필요하다.
양방향 병합 정렬은 길이가 1씩인 정렬된 자료 화일 n개의 입력으로 시작된다. 이 n개의 자료 화일을 크기 2인 n/2개의 화일로 병합된다. n/2개의 화일이 다시 병합되고 이러한 방법으로 1개의 자료 화일이 될 때까지 반복한다. 그래서 빠른 양방향 병합 정렬 알고리즘을 위해, 2l(l >0)간격의 행 형태 자료에 접근할 수 있는 기억 장치가 SIMD처리기에 유용하다.
SIMD처리기에서 연속적인 증가 FFT 알고리즘[J. W. Cooley, P. A. W. Lewis, and P. D. Welch, IEEE Trans. Educ., vol. E-12, No.1, pp. 27-34, 1969., D. T. Harper III and D. A. Linebarger, in Proc. 1988 Int. Conf. Parallel Processing , 1988.]을 위해 2l(l >0)간격의 행 형태의 자료를 접근 할 수 있는 기억 장치가 기억 장치 접근 시간을 감소시키는데 유용하다.
덧셈, 곱셈, 최대, 최소, AND, OR, XOR연산 등을 수행하는 재귀적인 증가 알고리즘[H. S. Stone, High-performance computer architecture, Addison Wesley, 1993.]을 위해서는 기억 장치 접근시간을 감소하기 위해 2l(l >0)간격의 행 접근형태 자료들을 접근 할 수 있는 기억 장치가 유용하다. 행렬에서의 덧셈, 곱셈, 식 (57, 58)은 블록, 열, 행, 대각선, 역대각선 형태의 자료들을 동시에 접근하면 효과적이다. 또한 SIMD처리기로 신호처리[J. S. Lim, Two-dimensional signal and image processing, Prentice-Hall, 1990., D. H. Johnson and D. E. Dudgeon, Array signal processing, Prentice- Hall, 1993.]하기 위해 다양한 행렬연산의 속도를 높이기 위한 블록, 열, 행, 대각선, 역대각선 형태의 동시자료 접근을 지원하는 충돌 회피기억은 전체적인 기억 장치 접근 시간을 줄이기 위해 유용하다.
pq개 PE로 구성된 SIMD처리기와 m개의 기억 모듈로 구성된 기억 장치에서, pq개의 자료가 동시에 각기 다른 기억 모듈로 요청되어 진다. 기억 장치 접근 시간 후, pq개의 요청이 끝나고 모든 기억 모듈도 그 연산을 끝내게 되는데 이때 요청된 자료내의 자료들의 위치는 제한되지 않아야 한다. 영상처리, 양방향 병합 정렬 알고리즘, 연속 증가 FFT 알고리즘, 재귀적 배가 알고리즘 그리고 행렬, 신호처리 등에서 기억 장치 접근시간을 줄이고 연산속도를 빠르게 하기 위해서, 크기 I(*,*)인 자료에서 간격 r을 가지고 블록, 열, 행, 대각선, 역대각선 접근형태로 pq개의 자료를 동시에 접근할 수 있는 기억 장치가 필요하다. 간격이 양수나 음수가 가능하려면, 기준좌표 (i, j)에서 간격이 양수 r인 12가지 접근 유형 (남동쪽 블록, 남서쪽 블록, 북서쪽블록, 북동쪽블록, 동쪽블록, 남동쪽선형, 남쪽선형, 남서쪽 선형, 서쪽선형, 북서쪽선형, 북쪽선형, 북동쪽선형)을 고려해야 한다.
SEB(i, j,r) = {I(i+ar, j+br) | 0 ≤a < p, 0 ≤b < q},
0 ≤i ≤ M-rp, 0 ≤j ≤ N-rq … (1)
SWB(i, j,r) = {I(i+ar, j-br) | 0 ≤a < p, 0 ≤b < q},
0 ≤i ≤M-rp, rq ≤j ≤N …(2)
NWB(i, j,r) = {I(i-ar, j-br) | 0 ≤a < p, 0 ≤b < q},
rp ≤i ≤M, rq ≤j ≤N …(3)
NEB(i, j,r) = {I(i-ar, j+br) | 0 ≤a < p, 0 ≤b < q},
rp ≤i ≤M, 0 ≤j ≤N-rq …(4)
EL(i, j,r) = {I(i, j+ar)|0 ≤a < pq}, 0 ≤i ≤M, 0 ≤j ≤N-rpq … (5)
SEL(i, j,r) = {I(i+ar,j+ar)|0 ≤a < pq} 0 ≤i ≤M-rpq,
0 ≤j ≤N-rpq …(6)
SL(i, j,r) = {I(i+ar,j)|0 ≤a < pq}, 0 ≤i ≤M-rpq, 0 ≤j ≤N …(7)
SWL(i, j,r) = {I(i+ar, j-ar)|0 ≤a < pq},
0 ≤i ≤ M-rpq, rpq ≤j ≤N …(8)
WL(i, j,r) = {I(i, j-ar)|0 ≤a < pq},
0 ≤i ≤M, rpq ≤j ≤N … (9)
NWL(i, j,r) = {I(i-ar,j-ar)|0 ≤a < pq},
rpq ≤i ≤M, rpq ≤j ≤N … (10)
NL(i, j,r) = {I(i-ar,j)|0 ≤a < pq},
rpq ≤i ≤M, 0 ≤j ≤N … (11)
NEL(i, j,r) = {I(i-ar,j+ar)|0 ≤a < pq},
rpq ≤i ≤M, 0 ≤j ≤N-rpq … (12)
여기서 간격 r은 양의 정수이다.
기준좌표 (i, j)에서 간격 r을 가지는 12가지 접근유형 (1)~(12)은 도 2a와 도 2b에 나타나 있다. 도 2a는 4-방향 블럭(SEB,SWB,NWB,NEB)을 도 2b는 8-방향선형(EL,SEL,SL,SWL,WL,NWL,NL,NEL)을 나타낸다.
도 3에서는 SIMD처리기가 있는 충돌회피 기억 장치의 일반적인 구조를 블록다이어그램 형태로 보여준다. 여기에서 인터페이스는 자료 레지스터이다. 처리될 자료가 저장되면, 기억 장치의 구성요소들은 SIMD처리기의 요청에 따라 제어장치의 제어하에 다음과 같은 연산을 순서대로 수행한다.
1) t , r, i, j 레지스터에는 SIMD처리기에 의해 지정된 접근유형, 기준좌표, 접근유형(1)-(12)에서 요구되는 간격이 넣어지고, 자료들은 행 우선 순위로 바뀌어 자료레지스터에 넣어진다. 여기서 k = aㆍq + b, 0 ≤k < pq이다. 예를 들어, 남동쪽블록(SEB)(14, 15, 2)에서 행 우선 순위로 바뀐 4개의 자료는 I(14, 15), I(14, 17), I(16, 15), I(16, 17)이다. 남서쪽블록(SWB)(14, 15, 3)에서 행 우선 순위로 바뀐 4개의 자료는 I(14, 15), I(14, 12), I(17, 15), I(17, 12) 이고 북서쪽선형 (NWL)(14, 15, 3)의 4개의 자료는 I(11, 12), I(8, 9), I(5, 6), I(2, 3)이다.
2) 주소계산과 주소이동 회로는 자료들에 대한 m개의 주소를 계산하고 그것들을 m개의 기억 모듈로 이동시킨다.
3) 기억 모듈 선택회로는 접근되어지는 pq개의 기억 모듈을 선택한다.
4) 자료이동 회로는 자료 레지스터내의 자료들을 m개의 기억 모듈로 이동시킨다.
5)Write신호에 의해 pq개의 자료가 선택된 pq개의 기억 모듈에 저장되어진다.
여기에서 2), 3), 4)번의 연산이 병렬로 수행된다.
마찬가지로 기억 장치로부터 자료를 꺼내올 때도 기억 장치의 구성요소들은다음과 같은 연산을 순서대로 수행하게된다.
1) t, r, i, j 레지스터 값을 결정한다.
2) 주소계산과 주소이동회로는 자료들에 대한 m개 주소를 계산하여 m개의 기억 모듈로 주소를 이동시킨다
3) 기억 모듈 선택회로는 접근되어지는 pq개 기억 모듈을 선택한다
4) READ신호에 의해 pq개의 선택된 기억 모듈로부터 pq개의 자료를 가져온다.
5) 자료 이동 회로는 m개의 기억 모듈로부터 자료 레지스터로 자료들을 이동시키고 행 우선 순위로 변형된 자료를 (1)~(12) 접근형태 중 하나로 배열한다.
여기에서 2),3)번의 연산이 병렬로 수행된다.
크기가 MxN인 자료 I(*,*)를 m 기억 모듈에 분산할 때 기억 모듈 할당함수는 동시에 접근되어지는 자료들은 다른 기억 모듈에 위치 시켜야 한다. 또한 주소할당 함수는 같은 기억 모듈에 할당되어지는 자료들에 다른 주소를 할당해야만 한다.
본 발명은 간단하고 빠른 주소 계산회로와 이동회로를 갖는 충돌회피 기억장치를 제공하는 것을 목적으로 한다.
본 발명의 다른 목적은 M×N 배열내 자료들에서 임의의 위치에서 일정 간격을 가진 4방향의 블록(pq)형태와 8방향의 선분형태인 pq개의 자료 요소들을 동시에 접근할 수 있게 지원하여 기억 장치 접근시간을 감소시킬 수 있는 충돌회피 기억장치를 제공하는 것이다.
본 발명의 또 다른 목적은 종래의 기억장치에 비해 자료의 접근형태, 간격, 자료 배열의 크기 제한 및 하드웨어의 비용과 속도 등에서 개선된 기억장치를 제공하는 것이다.
이러한 목적들을 달성하기 위한 본 발명에 따른 충돌회피 기억장치는 m(m>pq)개의 기억모듈과, 자료들에 대한 m개의 주소를 계산하고 그 값을 상기 m개의 기억모듈로 이동시키는 주소계산과 주소이동회로와, 접근되어지는 pq개의 기억모듈을 선택하는 기억모듈선택회로와, 지정된 접근유형과 기준좌표 및 접근유형에서 요구되는 간격정보를 저장하는 자료레지스터와, 상기 자료레지스터내의 자료들을 상기 m개의 기억모듈로 이동시키는 자료이동회로를 포함하여 이루어져 pq개의 프로세싱 엘리먼트(PE: processing element)를 가진 단일 명령 다중 자료(SIMD) 처리기에서 기억장치 접근 시간을 감소시키기 위한 충돌 회피 기억 장치에 있어서; 4방향 사각형 블록 양수의 간격으로 연관된 자료요소들이 자료배열내 어느 위치(남동쪽 블록, 남서쪽 블록, 북서쪽 블록, 북동쪽 블록)에 놓여 있든지 또는 8방향의 선형(동쪽 선형, 남동쪽 선형, 남쪽 선형, 남쪽 선형, 남서쪽 선형, 서쪽 선형, 북서쪽 선형, 북쪽 선형, 북동쪽 선형) 접근형태의 pq개 자료요소에 동시 접근을 지원하는 것을 특징으로 한다.
본 발명에 따른 충돌회피 기억장치의 세부적 특징은 상기 주소계산과 주소이동회로가, 기준좌표와 접근형태 및 간격정보를 제공받는 4개의 5×1 멀티플렉서와, 주소간의 차를 미리 정렬하고 저장하기 위한 제1, 제2 SRAM과, (i/p)s 값들을위한 제 3 SRAM과, 상기 멀티플렉서의 출력 값을 상기 제1, 제2 SRAM에 전달하는 두개의 가산기와, 상기 제 3 SRAM의 출력 값을 전달받아 더하는 가산기와 m개의 가산기로 이루어진 m+3개의 가산기(adder)와, 상기 m개의 가산기의 출력을 자료이동회로의 회전신호에 따라 m개의 기억모듈에 전달하는 배럴시프터(barrel shifter)로 이루어지는 점이다.
도 1은 주컴퓨터와 부착된 다중 SIMD컴퓨터의 관계를 나타낸 예시도,
도 2a는 4-방향 블럭의 접근형태, 간격 및 기준좌표의 예시도,
도 2b는 8-방향 선형의 접근형태, 간격 및 기준좌표의 예시도,
도 3은 충돌회피 기억장치의 일반적 설계 예시도,
도 4는 자료 이동회로의 상세회로도,
도 5a는 8 ×8 역 Omega 네트워크의 스위칭 요소들의 경로충돌예시도,
도 5b는 N = 16 Theta 네트워크의 스위칭 요소들의 경로충돌예시도,
도 6은 μ(i, j)=(iq+j)%m, p=q=2와 M ×N = 32 ×32, m=5에 대한 메모리 모듈 할당 함수에 의해서 할당되어진 메모리 모듈번호의 예시도,
도 7은 p=q=2, M ×N = 32 ×32, s=16에 대한 주소할당함수 α(i, j)=(i/p)s+j/q에 의해 할당된 주소
도 8은 p=q=2, M ×N = 32 ×32, s=16, m=5에 대한 주소계산과 이동회로 예시도,
도 9는 p=q=2, M ×N = 32 ×32, s=16에 대한 기억모듈 A와 B의 예시도,
도 10은 본 발명에 따른 기억장치를 적용한 그래픽 디스플레이 장치의 구성을 개략적으로 나타낸 블럭도,
도 11은 접근형태와 기준좌표의 예시도,
도 12는 본 발명에 따른 주소계산과 이동회로(ACRC)의 상세회로도이다.
이하, 첨부된 도면을 참조로 본 발명에 따른 충돌회피 기억장치의 구성과 그 기억장치를 이용한 주소계산 및 자료이동 방법을 설명하기로 한다.
자료의 기억 모듈 번호를 결정하는 기억 모듈 할당 함수는 다음과 같다
(i, j) = (iq+j) % m …(13)
기억 모듈 할당함수(13)는 m=pq+1, 2pq, pq2에 대해서는 Van Voorhis 과 Morrin[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978.]에 의해, m=pq+1에 대해서는 park[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986]와 Park과 Harper[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에 의해 제안되었다.
다음의 이론 1은 12가지 접근유형 (1)~(12)에 대해 위의 함수 (13)에 의한 접근 가능성을 보여 준다.
이론 1 : m이 pq보다 큰 소수일 때 기억 모듈 할당함수 (i, j)는 간격 r(r%m ≠0)인 (남동쪽 블록(SEB), 남서쪽 블록(SWB), 북서쪽 블록(NWB), 북동쪽블록(NEB), 동쪽선형(EL), 남동쪽선형(SEL), 남쪽선형(SL), 남서쪽 선형(SWL), 서쪽선형(WL), 북서쪽선형(NWL), 북쪽선형(NL), 북동쪽선형(NEL) 접근형태의 pq개의 자료들은 pq개의 서로 다른 기억 모듈내에 위치한다.
기억 모듈 내의 자료들의 주소를 결정하는 주소 할당 함수는 아래의 식 (14)와 같다.
(i, j) = (i/p)s + j/q …(14)
여기서 S는 ┌N/q ┐와 같거나 큰 정수이고 '/'는 정수형 나눗셈을 나타낸다. 이 함수는 Van Voorhis 과 Morrin[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978.], park[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986]와 Park과 Harper[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에 의해 제안되었다.
(1)-(12) 접근 유형에서 기억 모듈의 변화와 자료의 주소들이 변형된 행 우선 순위로 배열될 수 있다면 , k = aㆍq + b, 0 ≤k < pq 일때, 기억 모듈 할당함수(13)와 주소 할당함수 (14)는 다음과 같이 나타낼 수 있다.
μ(k) = (μ(0) + μ'(k))%m, 0 ≤k < pq …(15)
여기서 μ(0)은 함수 (13)의 (i, j)에 의해 구해진다.
α(k) = α(0) + α'(k), 0 ≤k < pq …(16)
여기서 α(0)은 함수(14)의 기준 주소인 α(i, j)이다.
기억 모듈 내에서 처리될 자료들의 주소가 계산되는 α(μ) ( 0 ≤μ< m )는 매우 느리고 비싸다.[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978., D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.] 자료들의 주소계산은 주소이동에서 분리된 주소계산으로 복잡성을 줄였다. Park[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986], Park과 Harper[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]의 기억 장치에서 주소들 간의 차 α'(k) (=α(k) - α(0))는 먼저 계산되어지고 그 주소간의 차를 α(0)에 더해서 (16)식의 α'(k)가 계산된다.
마지막으로 주소 α(k)는 기억 모듈로 이동되어진다. 주소계산과 주소이동방법의 단점은 이동 형태가 접근 유형과 간격에 의존하기 때문에 주소이동회로는 접근 유형과 간격이 증가되어지면 매우 복잡해진다.
본 발명에서 새로운 주소계산과 라우팅 방법이 주소간의 차 α'(k)에 요구되어진 자료들 중 첫 번째 자료의 μ(0)의 기억 모듈 번호로부터 기억 모듈 번호에 따라 순차적으로 미리 정렬되어지도록 제안되었다. 그래서 기준주소에 주소간의 차를 더한 후에, 모든 12접근 유형과 간격 μ(0)에 의한 오른쪽 회전이 필요하다.
μ'(k)와 α'(k)를 얻기 위해 앞에서의 식(15-16)이 다음과 같이 바뀐다.
μ'(k) = μ((k) - μ(0))%m, 0 ≤ k < pq …(17)
α'(k) = α(k) - α(0), 0 ≤ k < pq …(18)
μ'(k) = (λㆍk)%m인 경우에,
k = (μ'(k) λ')%m = ((μ(k) - μ(0))λ')%m …(19)
여기서, λㆍλ' = 1%m.
식(18)에서 k대신에 ((μ(k) - μ(0))ㆍλ')%m을 쓰면서, α'(k) 를 다음과 같이 쓸 수 있다.
α'(k)=α'(((μ(k) -μ(0))ㆍλ')%m)
= α(((μ(k) - μ(0))ㆍλ')%m) - α(0), 0 ≤ k < pq …(20)
α'(k) (0 ≤k < pq)는 기억 장치내에 사용되어진 pq개의 자료들의 주소간의 차이들이다. 여기에서 자료들은 기준주소 (i, j)의 자료로부터 변형된 행 우선으로 정렬되어진다. 기억 모듈 번호에 따라 기억 모듈 "0"부터 주소간의 차(20)들의 정렬에 의해 α'(μ)를 다음과 같이 구할 수 있다.
α'(μ)
= α'(((μ- μ(0))ㆍλ')%m)
= α(((μ- μ(0))ㆍλ')%m) - α(0), 0 ≤μ < m …(21)
α'(μ) (0 ≤μ < m )은 pq개의 자료에 대한 pq개의 주소간의 차들과 m-pq개의 가짜 주소간의 차들인데, 이들은 "0"부터 기억 모듈 번호 μ에 따라 정렬되어졌다.
α'(μ) (0 ≤μ < m )은 기준주소(i, j)의 자료의 기억 모듈 번호 μ(0)(=μ(i, j))에 의존하기 때문에 주소간의 차의 갯수는 기억 모듈 수 m에 따라 증가된다. 그래서 기억 모듈 수 m이 클 때, 접근 유형 (1)~(12)의 자료들의 주소 계산에 대해 α'(μ) (0 ≤μ < m)의 사용은 매우 복잡하다. (21)식에 μ대신 (μ+ μ(0))%m을 넣으면, 아래 식에 따라 기억 모듈 μ(0)부터 기억 모듈 번호의 순차적인 주소간의 차들을 구할 수 있다.
α'(μ+μ(0)) = α'(μㆍλ')%m, 0 ≤μ < m …(22)
(22) 식의 주소간의 차, α'(μㆍλ')%m (0 ≤μ< m)은 (i, j)나 (i, j)항목이 포함되어 있지 않기 때문에 자료들의 위치에 대한 영향이 적다.
그래서 번역시간에 주소간의 차들을 계산 후 그 주소간의 차들을 주소간의 차들을 한 기억 모듈에 저장할 수 있다. 식(22)의 주소간의 차들 α'(μ+μ(i,j))이 α(i, j)에 더해진 후 α(μ)를 얻기 위해 μ(i, j)에 의한 오른쪽 회전을 단지 한 번 한다.
12개의 접근 유형 (1)~(12)의 주소간의 차이들은 다음 식에 나타낸다.
AD_SEB(i, j,r,a,b) = α(i+ar,j+br) - α(i, j)
= sㆍ((i+ar)/p - (i/p)) + (j+br)/q - j/q
= sㆍ((i%p+ar)/p) + (j%q+br)/q, 0 ≤a < p, 0 ≤b < q … (23)
AD_SWB(i, j,r,a,b) = α(i+ar,j-br) - α(i, j)
= sㆍ((i+ar)/p - (i/p)) + (j-br)/q - j/q
= sㆍ((i%p+ar)/p) + (j%q-br)/q, 0 ≤a < p, 0 ≤ b < q … (24)
AD_NWB(i, j,r,a,b) = α(i-ar,j-br) - α(i, j)
= sㆍ((i-ar)/p - (i/p)) + (j-br)/q - j/q
= sㆍ((i%p-ar)/p) + (j%q-br)/q, 0 ≤a < p, 0 ≤b < q … (25)
AD_NEB(i, j,r,a,b) = α(i-ar,j+br) - α(i, j)
= sㆍ((i-ar)/p - (i/p)) + (j+br)/q - j/q
= sㆍ((i%p-ar)/p) + (j%q+br)/q, 0 ≤a < p, 0 ≤b < q … (26)
AD_EL(i, j,r,a) = α(i, j+ar) - α(i, j)
= (j%q + ar)/q, 0 ≤a < pq … (27)
AD_SEL(i, j,r,a) = α(i+ar,j+ar) - α(i, j)
= sㆍ((i%p+ar)/p) + (j%q+ar)/q, 0 ≤a < pq …(28)
AD_SL(i, j,r,a) = α(i+ar,j) - α(i, j)
= sㆍ((i%p+ar)/p), 0 ≤a < pq … (29)
AD_SWL(i, j,r,a) = α(i+ar,j-ar) - α(i, j)
= sㆍ((i%p+ar)/p) + (j%q-ar)/q, 0 ≤a < pq …(30)
AD_WL(i, j,r,a) = α(i, j-ar) - α(i, j)
= (j%q - ar)/q, 0 ≤a < pq … (31)
AD_NWL(i, j,r,a) = α(i-ar,j-ar) - α(i, j)
= sㆍ((i%p-ar)/p) + (j%q-ar)/q, 0 ≤a < pq … (32)
AD_NL(i, j,r,a) = α(i-ar,j) - α(i, j)
= sㆍ((i%p-a)/p)), 0 ≤a < pq …(33)
AD_NEL(i, j,r,a) = α(i-ar,j+ar) - α(i, j)
= sㆍ((i%p-ar)/p) + (j%q+ar)/q, 0 ≤a < pq …(34)
위에 나타낸 주소간의 차들 (23)~(34)는 다음 식에 따라 변형된 행 우선 순위의 기준좌표 (i, j)부터 정렬된다.
AD_SEB(i, j,r,k) = sㆍ((i%p+(k/q)r)/p) + (j%q+(k%q)r)/q,
0 ≤ k < pq …(35)
AD_SWB(i, j,r,k) = sㆍ((i%p+(k/q)r)/p) + (j%q-(k%q)r)/q,
0 ≤ k < pq …(36)
AD_NWB(i, j,r,k) = sㆍ((i%p-(k/q)r)/p) + (j%q-(k%q)r)/q,
0 ≤ k < pq …(37)
AD_NEB(i, j,r,k) = sㆍ((i%p-(k/q)r)/p) + (j%q+(k%q)r)/q,
0 ≤ k < pq … (38)
AD_EL(i, j,r,k) = (j%q + kr)/q, 0 ≤ k < pq …(39)
AD_SEL(i, j,r,k) = sㆍ((i%p+kr)/p) + (j%q+kr)/q, 0 ≤k < pq … (40)
AD_SL(i, j,r,k) = sㆍ((i%p+kr)/p)), 0 ≤k < pq …(41)
AD_SWL(i, j,r,k) = sㆍ((i%p+kr)/p) + (j%q-kr)/q, 0 ≤k < pq …(42)
AD_WL(i, j,r,k) = (j%q - kr)/q, 0 ≤k < pq …(43)
AD_NWL(i, j,r,k) = sㆍ((i%p-kr)/p) + (j%q-kr)/q, 0 ≤k < pq …(44)
AD_NL(i, j,r,k) = sㆍ((i%p-kr)/p)), 0 ≤k < pq …(45)
AD_NEL(i, j,r,k) = sㆍ((i%p-kr)/p) + (j%q+kr)/q, 0 ≤k < pq …(46)
주소간의 차들이 이진 항목을 가진 j%q에 영향을 받기 때문에 식(35)-(46)의 SEB, SWB, NWB, NEB, EL, SEL, SWL, WL, NWL, NEL의 주소간의 차들은 가산기의 입력 C를 위해 기억 모듈 B에 저장되어진 이진 값과 주소간의 차들의 크기 감소 결과인 입력 B를 위한 기억 모듈 A에 저장되어진 나머지 값들을 분리한다
SEB의 주소간의 차는 다음 식에 따라 분리되어 진다.
AD_SEB(i, j,r,k) = sㆍ((i%p+(k/q)r)/p) + ((k%q)r)/q,
0 ≤k < pq (주소간의 차를 위한 기억 모듈 A)
+ (j%q+(k%q)r)/q - ((k%q)r)/q,
0≤k<pq(주소간의 차를 위한 기억 모듈 B) …(47)
다른 11개의 접근 유형의 주소간의 차는 다음과 같다.
AD_SWB(i, j,r,k) = sㆍ((i%p+(k/q)r)/p) - ((k-(k/q)q)r)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q - (k%q)r)/q + ((k%q)r)/q
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq …(48)
AD_NWB(i, j,r,k) = sㆍ((i%p-(k/q)r)/p) - ((k-(k/q)q)r)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q - (k%q)r)/q + ((k%q)r)/q,
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq … (49)
AD_NEB(i, j,r,k) = sㆍ((i%p-(k/q)r)/p) + ((k-(k/q)q)r)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q + (k%q)r)/q - ((k%q)r)/q
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq … (50)
AD_EL(i, j,r,k) = (kr)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q + (k%q)r)/q -((k%q)r)/q
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq … (51)
AD_SEL(i, j,r,k) = sㆍ((i%p+kr)/p) + (kr)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q+kr)/q - (kr)/q
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq … (52)
AD_SL(i, j,r,k) = sㆍ((i%p+kr)/p))
(주소간의 차를 위한 기억 모듈 A), 0 ≤k < pq … (53)
AD_SWL(i, j,r,k) = sㆍ((i%p+kr)/p) - (kr)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q - (k%q)r)/q + ((k%q)r)/q
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq … (54)
AD_WL(i, j,r,k) = -(kr) / q
(주소간의 차를 위한 기억 모듈 A)
+ (j%q kr) /q + (kr) / q
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq … (55)
AD_NWL(i, j,r,k) = sㆍ((i%p-kr)/p) - (kr)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q - (k%q)r)/q + ((k%q)r)/q
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq … (56)
AD_NL(i, j,r,k) = sㆍ((i%p-kr)/p))
(주소간의 차를 위한 기억 모듈 A), 0 ≤k < pq … (57)
AD_NEL(i, j,r,k) = sㆍ((i%p-kr)/p) + (kr)/q,
(주소간의 차를 위한 기억 모듈 A)
+ (j%q + (k%q)r)/q - ((k%q)r)/q,
(주소간의 차를 위한 기억 모듈 B), 0 ≤k < pq …(58)
위의 12가지 주소간의 차들에 대해 [표 2]에 정리되어 있다.
주소계산 회로[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986., J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]는 기억주소 덧셈과 식(47)의 블록, 식(51)의 행, 식(53)의 행의 접근 유형의 주소간의 차들에 의해 pq주소들을 계산한다. 그래서 주소이동방법은 12접근형태들인 (1)~(12)의 주소가 한계치 p-i%p 또는 q-j%q뿐 아니라 양수 간격의 다양성 때문에 12가지 접근 형태 (1)~(12)와 간격들의 주소간의 차 계산 (47)~(58)의 구현으로 주소이동 방법이 더욱 복잡해진다. 요청된 자료들의 기억모듈 번호들이 첫 번째 자료의 기억 모듈 번호부터 순서대로 미리 정렬되어 있고, 기억 모듈 A와 B에 저장되어 있으면, 주소간의 차들에 기준주소 α(i, j)를 더하고 모든 12가지 접근 형태 (1)~(12)와 간격을 첫 번째 자료의 기억 모듈과 같은 값에 의해 m개의 주소로 바로 이동시켜 주소이동회로는 m개의 주소들을 간단히 계산할 수 있다.
이론 1에서 접근되는 pq개의 기억 모듈 번호는 12가지 접근형태 (1)~(12)와 r%m ≠0인 간격을 다음과 같이 나타내어진다.
IN_SEB(i, j,r) = μ(i+ar, j+br) = (μ(i, j) + qar + br)%m,
0 ≤a < p, 0 ≤b < q …(59)
IN_SWB(i, j,r) = μ(i+ar, j-br) = (μ(i, j) + qar - br)%m,
0 ≤a < p, 0 ≤b < q … (60)
IN_NWB(i, j,r) = μ(i-ar, j-br) = (μ(i, j) - qar - br)%m,
0 ≤a < p, 0 ≤b < q … (61)
IN_NEB(i, j,r) = μ(i+ar, j+br) = (μ(i, j) - qar + br)%m,
0 ≤a < p, 0 ≤b < q … (62)
IN_EL(i, j,r) = μ(i, j+br) = (μ(i, j) + br)%m, 0 ≤b < pq … (63)
IN_SEL(i, j,r) = μ(i+ar, j+ar) = (μ(i, j) + (q+1)ar)%m,
0 ≤a < pq …(64)
IN_SL(i, j,r) = μ(i+ar, j) = (μ(i, j) + qar)%m, 0 ≤a < pq …(65)
IN_SWL(i, j,r) = μ(i+ar, j-ar) = (μ(i, j) + (q-1)ar)%m,
0 ≤a < pq …(66)
IN_WL(i, j,r) = μ(i, j-ar) = (μ(i, j) - br)%m, 0 ≤a < pq …(67)
IN_NWL(i, j,r) = μ(i-ar, j-ar) = (μ(i, j) - (q+1)ar)%m,
0 ≤a < pq …(68)
IN_NL(i, j,r) = μ(i-ar, j) = (μ(i, j) - qar)%m, 0 ≤a < pq …(69)
IN_NEL(i, j,r) = μ(i-ar, j+ar) = (μ(i, j) - (q-1)ar)%m,
0 ≤a < pq …(70)
위의 식 (59)-(70)의 번호는 다음에 따라 기준주소 (i, j)로부터 변형된 행 우선 순위로 정렬되어진다.
μSEB(k) = (μ(0) + qㆍ(k/q)ㆍr + (k%q)ㆍr)%m = (μ(0) + kr)%m,
0 ≤k < pq …(71)
μSWB(k) = (μ(0) + qㆍ(k/q)ㆍr - (k%q)ㆍr)%m
= (μ(0) + (qㆍ(k/q) - (k%q))ㆍr)%m,
0 ≤k < pq … (72)
μNWB(k) = (μ(0) - qㆍ(k/q)ㆍr - (k%q)ㆍr)%m
= (μ(0) - kr)%m, 0 ≤k < pq … (73)
μNEB(k) = (μ(0) - qㆍ(k/q)ㆍr + (k%q)ㆍr)%m
= (μ(0) - (qㆍ(k/q) - (k%q))ㆍr)%m,
0 ≤k < pq … (74)
μEL(k) = (μ(0) + kr)%m, 0 ≤k < pq … (75)
μSEL(k) = (μ(0) + (q+1)kr)%m, 0 ≤k < pq …(76)
μSL(k) = (μ(0) + qkr)%m, 0 ≤k < pq …(77)
μSWL(k) = (μ(0) + (q-1)kr)%m, 0 ≤k < pq …(78)
μWL(k) = (μ(0) - kr)%m, 0 ≤k < pq …(79)
μNWL(k) = (μ(0) - (q+1)kr)%m, 0 ≤k < pq …(80)
μNL(k) = (μ(0) - qkr)%m, 0 ≤k < pq …(81)
μNEL(k) = (μ(0) - (q-1)kr)%m, 0 ≤k < pq …(82)
여기서 μ(0)은 μ(i, j)이다.
남동쪽블록(SEB)의 주소간의 차들
μ번째 모듈의 남동쪽 블록(SEB)의 주소간의 차, ASEB(μ)는 (17)-(22) 과정에 의해 (47)과 (71)로부터 얻어졌다.
ASEB(μ) = sㆍ((i%p+((((μ-μ(0))r')%m)/q)r)/p) + (((((μ-μ(0))r')%m)%q)r)/q,
0 ≤μ < m (기억 모듈 A)
+ (j%q+((((μ-μ(0))r')%m)%q)r)/q - (((((μ-μ(0))r')%m)%q)r)/q,
0 ≤μ < m (기억 모듈 B) … (83)
여기서 rㆍr' = 1%m.
(83)식에서 μ대신 (μ+μ(0))%m으로 대치하면 다음식에 의해 μ(0)부터 오름차순으로 정렬된 기억 모듈의 주소간의 차들을 구할 수 있다.
ASEB(μ+μ(0)) = sㆍ((i%p+(((μr')%m)/q)r)/p) + ((((μr')%m)%q)r)/q,
0 ≤μ < m (기억 모듈 A)
+ (j%q+(((μr')%m)%q)r)/q - ((((μr')%m)%q)r)/q,
0 ≤ μ< m (기억 모듈 B) …(84)
여기서 rㆍr' = 1%m이다
남서쪽블록(SWB)의 주소간의 차들
SWB(i, j, r)의 식(72)의 번호들이 식(19)내에 없기 때문에 SEB(i, j-(q-1)r, r)의 번호들과 주소간의 차들은 SWB(i, j, r) 대신에 고려되어진다. SEB(i, j-(q-1)r, r)의 주소간의 차는
AD_SEB(i,(j-(q-1)r),r,k) = sㆍ((i%p+(k/q)r)/p) + ((k%q)r)/q,
0 ≤k < pq (기억 모듈 A)
+ (j%q-(q-1)r+(k%q)r)/q - ((k%q)r)/q,
0 ≤k < pq (기억 모듈 B) …(85)
SEB(i, j-(q-1)r,k)의 기억 모듈의 지수는 다음과 같다
(μ(0) - (q-1)r + kr)%m, 0 ≤k < pq … (86)
그래서 μ번째의 모듈의 남동쪽 블록(SWB)의 주소간의 차 ASWB(μ)는 식 (85)와 (86)으로부터 구할 수 있다.
ASWB(μ) = sㆍ((i%p+((((μ - μ(0)+(q-1)r)r')%m)/q)r)/p)
+ (((((μ - μ(0)+(q-1)r)r′)%m)%q)r)/q,
0 ≤μ < m (기억 모듈 A)
+ (j%q-(q-1)r+((((μ-μ(0)+(q-1)r)r')%m)%q)r)/q
- (((((μ - μ(0)+(q-1)r)r')%m)%q)r)/q,
0 ≤μ < m (기억 모듈 B) … (87)
여기서 rㆍr' = 1%m이다
식(87)에서 μ대신에 ( μ+ μ(0) + (q-1)r)%m을 써서 다음식에 의해 μ(0)부터 오름차순으로 정렬된 기억 모듈들의 주소간의 차들을 구할 수 있다.
ASWB(μ + μ(0)) = sㆍ((i%p+((((μ+ (q-1)r)r')%m)/q)r)/p)
+ (-(q-1)r + ((((μ+ (q-1)r)r')%m)%q)r)/q,
0 ≤μ < m (기억 모듈 A)
+ (j%q-(q-1)r+(((( μ+ (q-1)r)r')%m)%q)r)/q
- (-(q-1)r + (((( μ+ (q-1)r)r')%m)%q)r)/q,
0 ≤μ < m (기억 모듈 B), (88)
여기서 rㆍr′= 1%m. 이다
μ(0)부터 오름차순으로 정렬된 기억 모듈들의 서로 다른 10가지 접근 형태에 대한 주소간의 차들은 SEB나 SWB와 같은 과정으로 구해진다. [표 3]에 μ(0)부터 오름차순으로 정렬된 기억 모듈들의 12가지 접근 형태 (1)~(12)와 간격들인 주소간의 차들을 보여주고 있다.
주소간의 차들의 크기
[표 3]에 있는 SEB, SWB, NWB, NEB, SEL, SWL, NWL과 NEL의 주소간의 차들은, r, i%p, 과 j%q 에 영향을 받는다. 또한 SEB, SWB, NEB, NWB, SEL, SWL, NWL,NEL의 주소간의 차들의 크기는 간격의 개수를 #r로 나타낼 때, 기억 모듈 A에 8 x p x m x #r x log2( MN / pq )비트 만큼과 기억 모듈 B에 8 x q x m x #r 비트만큼이다. 동쪽 선형과 서쪽선형의 주소간의 차들을 k, r 그리고 j%p에 영향을 받는다. 또한 주소간의 차들의 크기는 기억 모듈 A에 2 x q x m x #r x log2( MN / pq )비트와 기억 모듈 B에 2 x q x m x #r비트이다. 남쪽 선형과 북쪽 선형의 주소간의 차들은 k, r, i%p에 영향을 받으며 주소간의 차들의 크기는 기억 모듈 B에 2 x q x m x #r x log2(MN/(pq))비트이다. 남쪽선형과 북쪽 선형의 주소간의 차들은 j%q에 영향을 받지 않기 때문에 기억 모듈 B에 주소간의 차들이 없다. 그래서 제안된 기억 장치의 주소간의 차들에 전체 크기는 (12 x p x m x log2( MN / pq ) + 10 x q x m ) x #r 비트이다. 제안된 방법과 기억 장치의 단점은 12가지 접근 형태와 간격 (1)~(12)전체에 대한 [표 3]의 주소간의 차들을 저장하는데 기억 모듈 A와 B의 크기가 너무나 커진다는 것이다. 그래서 요청된 접근 형태와 간격에 대한 주소간의 차들을 번역시간에 계산하고 기억 모듈 A와 B에 저장하는 것이다.
본 발명에 따른 주소계산 회로와 주소이동회로는 다음과 같은 연산을 순서대로 수행한다.
1) 미리 정렬된 p ×m개의 주소간의 차들과 q ×m개의 주소간의 차들이 각각 접근형태와 각각 간격에 대해 기억 모듈 A와 B에 저장된다.
2) m개의 주소간의 차들은 접근 형태, i%p, j%q의 간격뿐 아니라 μ(0 ≤μ< m )등에 영향을 받기 때문에 요구되어진 접근 형태, i%p, j%q간격에 의해 기억 모듈 A와 B에서 가져온다.
3) 위에서 구해진 m개의 주소간의 차들은 기준주소 α(i, j)에 더해진다.
4) 위의 m개의 주소는 12가지 접근 형태와 간격 (1)~(12) 전체에 대해 μ(0)에 의해 회전된다.
5) 계산된 m개의 주소는 m개의 기억 모듈로 이동된다.
자료 레지스터에서 m개의 기억 모듈들로 자료를 이동시키는 자료이동회로 역할은 적절한 기억 모듈에 pq개의 자료들을 이동시키는 것이다. pq개의 자료에 대한 기억 모듈의 번호는 식 (71)~(82)에서의 주소들과 같다. 그래서 다음의 수식에 따라 pq개의 자료를 정렬시킨 후 이 자료들의 기억 모듈번호를 가지고 기억 모듈 번호 0부터 시작되는 오름차순 정렬을 위해 오른쪽 회전이 μ(i, j)만큼 수행되어진다.
SEB: D2((kr)%m) ←D1(k), 0 ≤k < pq … (89)
SWB: D2(((qㆍ(k/q) - k%q)ㆍr)%m) ←D1(k), 0 ≤k < pq … (90)
NWB: D2((-kr)%m) ← D1(k), 0 ≤k < pq … (91)
NEB: D2(((-qㆍ(k/q) + k%q)ㆍr)%m) ←D1(k), 0 ≤k < pq … (92)
EL: D2((kr)%m) ←D1(k), 0 ≤k < pq … (93)
SEL: D2(((q+1)kr)%m) ←D1(k), 0 ≤k < pq … (94)
SL: D2((qkr)%m) ←D1(k), 0 ≤k < pq … (95)
SWL: D2(((q-1)kr)%m) ←D1(k), 0 ≤k < pq … (96)
WL: D2((-kr)%m) ← D1(k), 0 ≤k < pq … (97)
NWL: D2((-(q+1)kr)%m) ←D1(k), 0 ≤ k < pq … (98)
NL: D2((-qkr)%m) ←D1(k), 0 ≤k < pq … (99)
NEL: D2((-(q-1)kr)%m) ←D1(k), 0 ≤k < pq … (100)
여기서 D1과 D2는 자료 레지스터와 임시 레지스터들이다. 이동형태가 접근 형태와 간격에 영향을 받기 때문에 이동형태 (89)~(100)을 이용하는 자료 이동 회로의 제어는 복잡하다. 이러한 자료 이동 형태는 다음에 따라 제어의 복잡도를 감소 시킬 수 있다.
남동쪽블록(SEB)
식 (89)의 남동쪽블록(SEB)의 자료이동형태에 대해 간격 r인 기억 모듈들의 번호들인, (kr)%m은 (kㆍmㆍl1 + kㆍr1)%m이다. 여기서, r1 = r%m 이고, l1은 양수이다. 그래서 식(89)의 간격 r인 남동쪽 블록(SEB)의 자료이동 형태는 아래 식으로부터 r1(=r%m )을 갖는 (m-1)개의 서로 다른 이동 경로들이 선택되어 진다.
SEB: D2((kr1)%m) ← D1(k), 0 ≤k < pq … (101)
남서쪽블록(SWB)
식(90)의 남서쪽 블록(SWB)의 자료이동 형태에 대해 간격 r인 기억 모듈의 번호들인 ((qㆍ(k/q) - k%q)ㆍr)%m은 (kㆍmㆍl2 + (qㆍ(k/q) - k%q)ㆍr1)%m이다.여기서 r1 = r%m이고 l2는 양수이다. 그래서 식(90)의 간격 r인 남서쪽 블록(SWB)의 자료이동 형태는 아래식으로부터 r1 = r%m을 갖는 (m-1)개의 서로 다른 이동 경로들이 선택되어진다.
SWB: D2(((qㆍ(k/q) - k%q)ㆍr1)%m) ← D1(k), 0 ≤k < pq … (102)
북서쪽 블록(NWB)
식(91)의 북서쪽 블록(NWB)의 자료이동 형태에 대한 간격 r인 기억 모듈 번호들 (-kr)%m은 식(89)의 남동쪽 블록(SEB)의 자료이동 형태 (kr)%m의 간격 (-r)%m인 기억 모듈 번호들과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동 경로에 간격 r대신 (-r)%m을 대입함으로써 북서쪽 블록(NWB)의 경로들을 구할 수 있다.
북동쪽블록(NEB)
식(92)의 북동쪽 블록(NEB)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 ((-qㆍ(k/q) + k%q)ㆍr)%m은 식 (90)의 남서쪽 블록(SWB)의 자료이동 형태에서 간격 (-r)%m인 기억 모듈 번호들인 ((qㆍ(k/q) - k%q)ㆍr)%m과 같다. 그래서 식(102)의 남서쪽 블록 (SWB)의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 (-r)%m을 대입함으로써 북동쪽 블록(NEB)을 구할 수 있다.
동쪽선형(EL)
식(93)의 동쪽선형(EL)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 (kr)%m은 식(89)의 남동쪽 블록(SEB)의 자료이동 형태에 대한 간격 r인 기억 모듈 번호들과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 r%m을 대입하여 동쪽선형(EL)의 경로들을 구할 수 있다.
남동쪽선형(SEL)
식(94)의 남동쪽 선형(SEL)의 자료 이동 형태에 대해 간격 r인 기억 모듈 번호들인 ((q+1)kr)%m은 식(89)의 남동쪽 블록(SEB)의 자료이동 형태에서 간격 ((q+1)r)%m인 기억 모듈 번호들인 (kr)%m과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동경로들을 이용하여 간격 r 대신 ((q + 1)r)%m을 대입함으로써 남동쪽 선형(SEL)의 경로들을 구할 수 있다.
남쪽선형(SL)
식(95)의 남쪽 선형(SL)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 (qkr)%m은 식(89)의 남동쪽 블록(SEB)의 자료 형태에 대해 간격 (qr)%m인 기억 모듈 번호들인 (kr)%m과 같다. 그래서 식(101)의 남동쪽 블록(SEB) 의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 (qr)%m을 대입함으로써 남쪽선형(SL)의 경로들을 구할 수 있다.
남서쪽 선형(SWL)
식(96)의 남서쪽 선형(SWL)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 ((q-1)kr)%m은 식(89)의 남동쪽 블록(SEB)의 자료 이동 형태에서 간격 ((q 1) r)%m인 기억 모듈 번호들인 ((kr)%m)과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 ((q-1)r)%m을 대입함으로써 남서쪽 선형(SWL)의 경로들을 구할 수 있다.
서쪽선형(WL)
식(97)의 서쪽선형(WL)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 (-kr)%m은 식(89)의 남동쪽 블록(SEB)의 자료이동형태들에서 기억 모듈 번호들인 (kr) % m에 간격 (-r)%m으로 넣은 (k(-r))%m)과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 (-r)%m을 대입함으로써 서쪽선형(WL)의 경로들을 구할 수 있다.
북서쪽선형(NWL)
식(98)의 북서쪽선형(NWL)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 (-(q+1)kr)%m은 식(89)의 남동쪽 블록(SEB)의 자료이동형태들에서 기억 모듈 번호들인 (kr)%m에 간격 (-(q+1)r)%m 으로 넣은 (k(-(q+1)r))%m과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 (-(q+1)r)%m을 대입함으로써 북서쪽선형(NWL)의 경로들을 구할 수 있다.
북쪽선형(NL)
식(99)의 북쪽선형(NL)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 (-qkr)%m은 식(89)의 남동쪽 블록(SEB)의 자료이동형태들에서 기억 모듈 번호들인 (kr)%m에 간격 (-qr)%m 으로 넣은 (k(-qr))%m과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 (-qr)%m을 대입함으로써 북쪽선형(NL)의 경로들을 구할 수 있다.
북동쪽선형(NEL)
식(100)의 북동쪽선형(NEL)의 자료이동 형태에 대해 간격 r인 기억 모듈 번호들인 (-(q1)kr)%m은 식(89)의 남동쪽 블록(SEB)의 자료이동형태들에서 기억 모듈 번호들인 (kr)%m에 간격 (-(q1)r)%m 으로 넣은 (k(-(q1)r))%m과 같다. 그래서 식(101)의 남동쪽 블록(SEB)의 (m-1)개의 서로 다른 이동 경로들을 이용하여 간격 r대신 (-(q1)r)%m을 대입함으로써 북동쪽선형(NEL)의 경로들을 구할 수 있다.
[표 4]에 감소된 이동 형태들이 나타나 있다.
12가지 접근 형태에 대한 전체 이동형태는 2(m-1)개이다. 그래서 자료 이동회로는 간격 (1)~(12)인 12가지 접근 형태에 대해 식(101)의 SEB와 식(102)의 SWB, 두개에 대한 이동 형태만 필요하다.
자료 이동 회로는 도 4에 나타나 있다.
여기서 ROM, log2(2(m - 1)) x 2(m - 1)검파기, 3상버퍼 선택기를 이용하여 12가지 접근 형태와 간격을 가지는 2(m-1)가지의 이동형태를 만든다. 12가지 접근 형태와 간격 r을 위한 이동 형태들은 도 5a 및 도 5b에 나타난 바와 같이 Omega네트워크 [J. Frailong, W. Jalby, and J. Lenfant, in Proc. Int. Conf. Parallel Processing, 1985, pp. 276-283., C. S. Raghavendra and R. Boppana, in Proc. Int. Conf. Parallel Processing , 1990, pp.76-83., D. H. Lawrie, IEEE Trans. Comput ., vol. C-24, no. 12, pp. 1145-1155, Dec. 1975.]이나 Theta네트워크 [D. Lee, "Scrambled storage for parallel memorysystems," in Proc. Int. Symp. on Comp. Architecture, pp. 232-239, 1988.]에서 경로들의 충돌 때문에 구현될 수 없다. 본 발명에 따른 자료 이동 회로는 Crossbar네트워크[D. T. Harper III, IEEE Trans. Comput., vol. C-43, pp.618-622, May 1994., H. Shapiro, IEEE Trans. Comput ., vol. C-27, no. 5, pp. 421-428, May 1978., D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]에서 단순히 비교되어졌다. READ연산을 위한 이동 형태는 정해져 있다.
간격을 가진 열, 블록, 행에 대한 기억 모듈 선택회로는 Van Voorhis와 Morrin[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978.], 그리고 Park[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986]에 의해 제안되어 왔다. 기억 모듈 선택 회로는 함수(71)~함수(82)에서 나온 번호에 해당하는 pq개의 기억 모듈들을 선택한다. 일반적으로 (m-pq) << pq이기 때문에 사용되지 않은 기억 모듈을 찾는 기억 모듈 선택 회로의 구현이 쉽다. 다음의 이론 2는 12가지 접근 형태 (1)~(12)에 대한 (m-pq)개의 접근되지 않은 기억 모듈 번호를 보여준다.
이론 2 : 12가지 접근 형태에 대한 (m-pq)개의 접근 되지 않는 기억 모듈 번호들은 다음과 같다
SEB(k) = ((0) + kr)%m, pq ≤k < m … (103)
SWB(k) = (μ(0) + (qㆍ(k/q) - (k%q))ㆍr)%m, pq ≤k < m … (104)
NWB(k) = (μ(0) - kr)%m, pq ≤k < m … (105)
NEB(k) = (μ(0) - (qㆍ(k/q) - (k%q))ㆍr)%m, pq ≤k < m … (106)
EL(k) = (μ(0) + kr)%m, pq ≤k < m … (107)
SEL(k) = (μ(0) + (q+1)kr)%m, pq ≤k < m … (108)
SL(k) = (μ(0) + qkr)%m, pq ≤k < m … (109)
SWL(k) = (μ(0) + (q-1)kr)%m, pq ≤k < m … (110)
WL(k) = (μ(0) - kr)%m, pq ≤k < m … (111)
NWL(k) = (μ(0) - (q+1)kr)%m, pq ≤k < m … (112)
NL(k) = (μ(0) - qkr)%m, pq ≤k < m … (113)
NEL(k) = (μ(0) - (q-1)kr)%m, pq ≤k < m … (114)
여기서 μ(0)는 (i, j)이다.
위의 식 (103)~(114)의 (m-pq)개의 번호들이 (m-pq)개의 디코더들에 주어지면 디코더들의 해당된 반전 결과를 OR연산한 m개의 결과는 m개의 기억 모듈을 접근을 제어한다.
특히 m=pq+1에 대해 식 (103)~(114)내의 k를 pq로 대치해서 얻은 접근되지 않는 기억 모듈 번호 하나를 디코더에 제공하고, m개의 반전된 디코더의 결과는 pq개의 접근되는 기억 모듈의 접근 신호와 접근되지 않는 기억 모듈의 비접근 신호로 사용된다.
주소계산과 라우팅 그리고 기억 모듈의 예
도 6은 p=q=2, M x N=32 x 32 그리고 m=5일때 기억 모듈 할당 함수에 의해 할당된 각 자료의 기억 모듈번호들이 나타나 있다. 도 7은 p=q=2, M x N=32 x 32, 그리고 s=16일때 주소할당 함수에 의해 할당된 각 자료의 주소들이 나타나 있다. 도 8은 p=q=2, M x N=32 x 32, S=16 그리고 m=5에 대한 주소계산 회로도와 주소이동 회로도이다. 여기서 사용된 12가지 접근 형태와 간격 r=1, 2, 3, 4인 기억 모듈 A와 B의 주소간의 차는 도 9에 나타나 있다. 본 발명에서 나타내는 주소계산과 주소이동 그리고 기억 모듈 선택 방법이 다음의 예들에서 보여진다.
예 1) 간격 1인 위치(14, 15)의 남동쪽 블록(SEB)에 대해 행 우선 순위로 변경된 I(14, 15), I(14, 16), I(15, 15), I(15, 16)의 기억 모듈 번호 μ(k) =(3, 4, 0, 1)를 그림7로부터 구할 수 있고, 주소들 α(k)=(119, 120, 119, 120)을 도 7로부터 구하여 기억 모듈 번호에 따라 주소들을 정렬하면 α(μ)=(119, 120, x, 119, 120)이 된다. 여기의 x는 접근되지 않는 기억 모듈 번호 2를 의미한다. 본 발명에 따른 주소계산과 주소이동 그리고 기억 모듈 선택 방법의 과정은 아래와 같다.
i%p = 0, j%q = 1, r = 1에 대해 다음과 같이 주소간의 차가 구해진다.
ASEB( μ+ μ(0))%m = (0, 0, 0, 0, 16) 각 가산기의 입력 B
+ (0, 1, 0, 1, 0) 각 가산기의 입력 C
= (0, 1, 0, 1, 16) (도 9로부터)
구해진 주소간의 차에 기준 주소를 적용하여 다음을 얻을 수 있다.
α(k) = α(0) (=119) + ASEB( μ+ μ(0))
= (119, 120, 119, 120, 135).
이 주소들을 μ(0)(=3)에 의해 오른쪽으로 회전하면 다음처럼 구해진다
α(μ) = (119, 120, 135, 119, 120)
식(103)에서 구해진 ((i, j) + kr)%m = (3+4)%5 = 2번 모듈이 접근되지 않는 모듈이기 때문에 위에서와 같은 결과인 (119, 120, x, 119, 120)이 구해진다.
다른 예는 [표 5a] 및 [표 5b]에 나타나 있다.
텍스트와 이미지의 빠르고 정확한 수정과 디스플레이에 대한 많은 요청에 따라 고속의 고해상도 그래픽 디스플레이 장치에 대한 수요가 증가되고 있다. 기존의 그래픽 디스플레이 장치들은 수정과 디스플레이 하기 위해 2차원 영상배열을 포함하는 버퍼 기억 장치를 이용한다. 그래픽 디스플레이 장치는 주 컴퓨터의 명령에 따라 버퍼 기억 장치의 영상점들을 새롭게 수정한다. 버퍼 기억 장치로부터 영상점들을 읽고 레스터 스캐닝(raster scanning)형태에 따라 디스플레이로 영상점들을 보낸다. 고속의 고해상도 그래픽 디스플레이 장치에서 버퍼 기억 장치 내용의 수정 시간을 줄이기 위해 고속의 버퍼 기억 장치가 요구된다. 한 기억 칩에 포함되어지는 비트수들이 칩 기술의 발전에 따라 증가되고 있다. 그러므로 여러 접근 형태에 따른 많은 영상점들의 병렬적 접근을 위해 대용량의 단일 기억 모듈에 대해접근 시간을 줄이는 것보다는 상대적으로 용량은 적더라도 한 기억 칩에 들어가는 기억 모듈의 수를 증가시키는 것이 고속의 버퍼 기억 장치를 위해 바람직하다. 그래서 버퍼 기억 장치의 내용을 수정하는 시간을 줄이기 위한 영상 접근 형태에 따른 많은 영상점들을 병렬적으로 접근하는 버퍼 기억 장치가 필요하다.
이하에서 그래픽 디스플레이 장치의 버퍼 기억 장치를 위해 사용되어질 블록, 수평, 수직, 대각선, 역대각선 접근 형태를 가진 기억 장치에 대해 알아보고 기존의 기억 장치를 비교한다.
블록, 수평, 수직, 대각선, 역대각선 접근 형태를 위한 기억 장치
고속의 고해상도 그래픽 디스플레이 장치를 위한 효율적인 버퍼 기억 장치를 알아본다. 이 기억 장치는 이차원 영상에서 블록 (P x q), 수평(1 x pq), 수직(pq x 1), 대각선, 역대각선 접근형태의 pq개의 영상점들에 대해 병렬 접근을 제공한다.
여기에서 사용되는 매개변수 p와 q는 모두 2의 멱(power)이다.
도 10에 나타난 그래픽 디스플레이 장치는 일반적으로 주 컴퓨터, 디스플레이 처리기, 버퍼 기억 장치(100), 비디오 생성기, 그리고 디스플레이로 구성되어 있다. 디스플레이 처리기는 주 컴퓨터의 명령어에 따라 버퍼 기억 장치내의 영상점들을 새롭게 수정한다.
비디오 생성기는 버퍼 기억 장치에서 영상점들을 읽어다가 레스터의 스캐닝(raster scanning)형태에 따라 디스플레이로 보낸다. M x N 크기의 영상자료에서 영상점들에 접근 시간을 줄이기 위해, 그래픽 디스플레이 장치 내에 M x N영상내에서 pq개의 영상점들을 병렬로 접근하기 위한 버퍼 기억 장치가 필요하다. [표 6]에서 기존의 그래픽 디스플레이들의 표시 영역의 다양한 크기를 보여준다. 버퍼 기억 장치의 크기는 적어도 특정한 디스플레이 장치의 표시영역의 크기와 같아야 한다.
예를 들어, 960(라인 수) x 1280(라인 당 영상점의 수) 디스플레이에 대해 M x N의 최소 값은 각각 960과 1280이다. 그래서 많은 그래픽 장치들의 N값은 2의 멱(power)이 아닌 값을 쓴다.
버퍼 기억 장치(100)는 수평선형, 수직선형 또는 한 문자에 대한 쓰기 시간을 줄이기 위해 수평, 수직, 또는 블록 형태의 영상점들을 병렬로 접근해야 한다. 추가적으로 대각선이나 역대각선의 영상점들에 대한 병렬적인 접근은 45도 만큼씩 정수 배의 선형 형태의 영상자료들에 쓰기 시간을 감소시키거나 45도 만큼씩 정수배로 회전시키기 위해 필요하다. 그러므로 버퍼 기억 장치(100) 수정의 속도향상을 위해 버퍼 기억 장치(100)는 M x N 영상 i(*,*)내의 기준좌표들 (i, j)에서 블록(BL), 수평(HR), 수직(VR), 대각선(FD), 또는 역대각선(BD) 접근 형태에 대해 아래와 같은 pq개의 영상점들에 대한 병렬적인 접근을 제공해야 한다.
BL(i, j) = {I(i+a, j+b) | 0 ≤a < p, 0 ≤b < q} 0 ≤i ≤M-p,
0 ≤j ≤N-q …(115)
HR(i, j) = {I(i, j+a)|0 ≤a < pq}, 0 ≤i ≤M-1, 0 ≤j ≤N-pq … (116)
VR(i, j) = {I(i+a,j)|0 ≤a < pq}, 0 ≤i ≤M-pq, 0 ≤j ≤N-1 … (117)
FD(i, j) = {I(i+a,j+a)|0 ≤a < pq}, 0 ≤i ≤M-pq, 0 ≤j ≤N-pq … (118)
BD(i, j) = {I(i+a,j-a)|0 ≤a < pq}, 0 ≤i ≤M-pq, pq - 1 ≤j ≤N-1 …(119)
도 11에 기준좌표 (i, j)를 갖는 위의 접근 형태들이 나타나 있다. 여기서 기준좌표들은 기준 영상점 i(i, j)의 좌표를 의미한다. 영상점들을 수정하고자 할 때 도 11에 있는 버퍼 기억 장치의 구성요소들은 디스플레이 처리기의 요청에 따라 제어회로의 제어에 의해 다음의 연산들을 순서대로 수행한다.
1. 레지스터 t, i, j는 디스플레이 처리기에 의해 자료의 접근 형태 (블록은 1, 수평은 2, 수직은 3, 대각선은 4, 그리고 역대각선은 5)의 선택 t와 접근형태 (1)-(5)에 따른 요구되어진 기준좌표 (i, j)가 넣어지고 자료들 자체는 행 우선 순위의 자료 레지스터에 위치한다.
2. 주소계산과 이동회로(ACRC)는 m개의 영상점 주소들을 계산하고 그것을 m개의 기억 모듈로 이동시킨다.
3. 기억 모듈 선택 회로는 접근되어지는 pq개의 기억 모듈들을 선택한다.
4. 자료 이동 회로는 자료 레지스터에 있는 pq개의 영상점들을 m개의 기억 모듈로 이동시킨다.
5. WRITE신호는 pq개의 선택된 기억 모듈에 영상점들을 저장하게 한다.
여기서, 연산 2, 3, 4가 병렬적으로 수행되어진다.
마찬가지로 버퍼 기억 장치로부터 영상점들을 읽어올 때 버퍼 기억 장치의 구성요소들은 아래와 같은 연산을 순서대로 수행한다.
1. t, i, j 레지스터에 요청되어진 값을 넣는다.
2. ACRC(주소계산과 이동회로)가 m개의 영상점 주소들을 계산하고 그 값들은 m개의 기억 모듈로 이동한다.
3. 기억 모듈 선택 회로는 접근되는 pq개의 기억 모듈을 선택한다.
4. READ신호에 의해 pq개의 선택된 기억 모듈에서 영상점들을 읽어온다.
5. 자료 이동 회로는 m개의 기억 모듈에서 pq개의 영상점들을 자료 레지스터로 이동시키고 접근 형태 (1)-(5)의 선택 따라 행 우선 순위로 되어있는 pq개의 영상점들을 정렬한다.
여기에서 연산 2와 3이 병렬로 수행되어진다.
도 12에 본 발명에 따른 ACRC(주소계산과 이동회로)가 나타나 있다.
ACRC(주소계산과 이동회로)는 주소간의 차를 위한 2개의 SRAM, 4개의 5 x 1 MUX (m+3)개의 가산기, (i/p)값들을 위한 SRAM, 그리고 배럴 시프터로 구성되어 있다.
블록, 수평, 대각선, 역대각선 접근형태의 주소간 차들의 첫 번째 간격은 μ(0 ≤μ < m)의 i%p값에 따라 p개의 차이 값으로 나타난다. 수평 접근형태의 주소간 차이들의 첫 번째 간격은 μ(0 ≤μ < m)의 i%p값에 따라 변화가 없다. 블록, 수평, 대각선, 역대각선 접근 형태의 주소간 차이들의 두 번째 간격은 μ(0 ≤μ < m)의 j%p값에 따라서 q개의 차이가 이진 값들로 나타난다.
수직접근 형태의 주소간 차들의 두 번째 간격은 μ(0 ≤μ < m)의 j%q값에 따라 변화가 없다. 그러므로 주소간 차이들을 위한 첫 번째 SRAM은 접근 형태와 i%p값에 의해 접근되어 m개의 가산기들에 B입력들로 제공된다. 그리고 주소간 차이들을 위한 두 번째 SRAM은 접근 형태와 j%q값에 의해 접근되어 m개의 가산기들에 C입력들로 제공된다. 여기서 주소간 차이들을 위한 첫 번째와 두 번째 SRAM의 크기는 각각 (4p+1) x m x log2(MN / pq)비트와 (4q+1) x m비트이다.
도 12에서 주소간 차이들을 위한 첫 번째 SRAM의 선택된 주소들은 블록 접근 형태의 영 번째 p x m개의 주소간 차이들을 위한 tㆍp+i%p, 수평 접근 형태의 첫 번째 l x m개의 주소간 차이들을 위한 tㆍp, 그리고 수직, 대각선, 역대각선 접근형태의 두 번째, 세 번째, 네 번째 p x m개의 주소간의 차이들을 위한 ((p-1)의 2의 보수) + tㆍp+i%p)인 (tㆍp+i%p - ( p1 )이다.
주소간 차이들을 위한 두 번째 SRAM의 선택된 주소들은 블록과 수평접근 형태의 영 번째와 첫 번째인 q x m개의 주소간 차이들을 위한 (tㆍq+j%q), 수직접근 형태의 두 번째인 l x m개의 주소간의 차이들을 위한 (tㆍp), 대각선과 역대각선 접근 형태의 세 번째와 네 번째인 주소간 차이들을 위한 (tㆍq+j%q+((q-1)의 2의 보수))인 (tㆍq+j%q - (q-1))이다.
(tㆍp+i%p)과 (tㆍq+j%q)의 값은 p와 q가 모두 2의 멱(power)일 때 곱셈이나 덧셈 없이 각각 (tㆍp), (i%p), (tㆍq), (j%q)의 연결에 의해 간단히 구할 수 있다.
기준주소 α(i, j)의 계산에 필요한 한번의 곱셈 (i/p)s값을 위한 SRAM 접근으로 대신한다. 만일 기본 주소 계산에서의 한번 곱셈을 제거하기 위해 N이 2의 멱(power)이 아닌데 S를 2의 멱(power)이 되도록 선택한다면, M x N=960 x 1280인 영상에서 접근되는 부분의 60%인 q (s -┌N/q ┐ ) M이 사용되지 않는 기억 장치 영역으로 추가되어진 용량이다.
본 발명에 따른 ACRC(주소계산과 이동회로)에서는 S가 2의 멱(power)이 아닐 때 SRA에 접근으로 얻어진 (i/p)s값에 기준주소를 위해 j/q값을 더해준다. S가 2의 승수일때는 (i/p)s의 값에 i값의 최하위 비트에 log2(s/p)만큼의 0을 추가해서 구한다. (i/p)와 j/q값의 합은 m개의 가산기들에 A입력으로 제공된다.
이하에서는 주소계산과 주소이동에 본 발명에 따른 하드웨어 알고리즘을 하드웨어 가격, 제어의 복잡성, 속도 등의 사항들을 가지고 이전의 기억 장치[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978., J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986.,D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982., J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]와 비교하였다.
이 비교에서는 자료 내에서 임의의 위치에 있는 적어도 3가지 접근 형태 자료들의 병렬 접근이 지원되고 주소계산과 주소이동 회로의 하드웨어 구현이 고찰된다. Van Voorhis와 Morrin[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978.], Lawrie, Vora[D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]가 제안한 기억 장치에서는 각 기억 모듈 μ(0 ≤μ < m)의 주소 α(μ)를 직접 계산한다. ACRC(주소계산과 이동회로)[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978., D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]들에서는 주소계산이 주소이동에서의 회전과 분리되지 않기 때문에 제어가 복잡하고 비용이 상승된다. ACRC(주소계산과 이동회로)[D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]는 각 기억 모듈 k에 대해 블록, 수평, 수직 접근형태 각각의 α(μ)인 (i+((k-(i, j))%m)/q, j+((k-(i, j))/m)%q), (i, j+(k- (i, j))/m), (i+(p((i, j)-k))%m, j)들을 계산한다.
그러므로 [표 7]에서 나타난 바와 같이 첫번째 행에 나타난 하드웨어의 구성요소와 연산 지연 시간이 기억 장치[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978.]에서 m개의 기억 모듈에 대해 α(μ)가 가능한 빨리 계산되어지는데 필요하다.
이 기억 장치[D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]에서 BSD에 대해 α(μ)의 계산과 이동을 위해, 기억 모듈이 17개 프로세서, 16개일 때 [표 7]의 2번째 행에 있는 하드웨어의구성요소와 연산지연 시간이 필요하다. Park[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986], Park와 Harper[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에 의해 제안된 기억 장치에서의 주소계산은 주소이동과 분리된다. Park의 기억 장치[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986.]의 ACC(주소계산 회로)는 가산기 배열에서 한번의 덧셈시간을 요구하는 a(i, j), (0, s, 또는 k, k=0,...,(p-1)), 그리고 (0,1)의 덧셈에 의해 블록 접근형태와 수평 접근 형태의 pq개의 주소들을 계산하고 2번의 덧셈 시간을 요구하는 α(i, j), (0 or s), and (ks, k=0,...(q-1))의 덧셈에 의해 수직 접근형태의 pq개의 주소들을 계산한다.
ARC(주소이동회로)는 먼저 두 번의 이동에 의해 수직 접근형태의 (iq+j-1)%(pq+1)나 수직 접근형태의 (iq+j-q)%(pq+1)의 숫자에 의해 정렬된 주소들을 오른쪽으로 회전한다.
이 기억 장치[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986]에서 m개의 기억 모듈을 위한 α(μ)를 계산하기 위해 [표 7]의 3번째 행의 하드웨어 구성요소와 연산지연 시간이 필요하다.
다른 기억 장치[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7,No. 8, pp.855-860, Aug. 1996.]의 ACC(주소계산회로)는 첫 번째 SRAM의 주소간의 차들과 두 번째 SRAM의 주소간의 차들인 (i, j)의 덧셈에서 한번의 덧셈시간 내에 블록, 수평 또는 수직 접근 형태의 pq개 주소들이 계산된다. pq개의 가산기에 입력되는 입력 B에 대한 주소간 차들의 크기는 3가지 접근형태 모두 p x pq이다.
M개의 가산기의 입력C에 대한 ACC(주소계산회로)의 주소간의 차들의 크기는 블록접근 형태의 주소간에 차들이 i%p뿐만 아니라 j%q에 종속되기 때문에 블록접근 형태에 대해서는 q x q이다. 그래서 ACC(주소계산회로)의 첫 번째 SRAM과 두 번째 SRAM의 크기는 다섯 가지 접근 형태 (115)-(119)에 대해 5p x pq와 3q x q만큼이 된다. ARC(주소이동회로)는 먼저 기억 모듈 번호에 따라 블록, 수평 또는 수직 접근 형태의 pq개의 주소들을 정렬한 후 블록, 수평 또는 수직접근 형태에 대해 (iq+j)%(pq+1)만큼 오른쪽으로 회전한다. 그러므로 이 기억 장치에서 α(μ)를 계산하기 위해 [표 7]의 4번째 행의 하드웨어 구성요소와 연산지연 시간이 필요하다. ACRC(주소계산과 이동회로)의 단점은 접근 형태에 따른 주소들의 계산 후에 기억 모듈 번호에 따라서 복잡하게 정렬시켜야 하는 것이다. 이것은 ACC(주소계산회로)에서 출력된 주소들이 기억 모듈 번호에 따라 정렬되어 있지 않기 때문이다. 이에 반해 본 발명에서 제안된 기억 장치에서 α(μ)을 계산하는데 [표 7]의 5번째 행의 하드웨어 구성요소와 연산지연 시간이 필요하다. 이때 출력주소는 μ(i, j)로부터 기억 모듈 번호에 따라 정렬되어져 있다. 앞의 회로[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. ParallelDistrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에 비교하여 본 발명에 따른 주소계산 및 자료이동회로의 주요한 이점들은 속도 측면에서 곱셈기 대신 SRAM으로의 대치한 것과 멀티플렉서들을 제거하여 제어의 간편화와 게이트의 수를 감소시켰고 주소간의 차들의 크기를 (4p + q) x pq x log2(MN / pq) j + 3q x q비트에서 (4p + 1) x m x log2(MN / pq) + (4q + 1) x m으로의 감소시킨 것이다.
일반적인 글씨 크기가 8 x 8과 같거나 크다고 할 때 그래픽 디스플레이의 좋은 성능을 위해서는 적어도 p=8, q=8이어야 한다. 또한 pq값은 M과 N사이에 있는 최소 값과 같거나 작아야 한다.
ACRC(주소계산과 이동회로)의 하드웨어 구성 요소들과 연산 지연 시간을 M x N x b = 960 x 1280 x 24 일 때 p = q = 8, m = 7인 경우와 p = q = 16, m = 257인 경우에 대해 [표 8]에서 비교했다.
앞의 기억 장치[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Parkand D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]의 곱셈기를 회로의 연산 속도 향상을 위해 본 발명에 따른 기억 장치에서는 SRAM으로 대치했다. 1비트 5x1 멀티플렉서 하나의 게이트 수가 12이고 전가산기 하나의 게이트 수가 7이라고 가정할 때, m x log2(MN / pq)-bit의 5 x 1 멀티플렉서의 게이트 수가 12이고 하나의 전가산기의 게이트 수는 전체 가산기 즉, log2(4p + 1)-비트 가산기 한 개 + log2(4q + 1)비트 가산기 한 개 + log2(MN / pq)비트 가산기 (pq + 1)개의 게이트 수보다 훨씬 많다. 이러한 구성요소를 가진 이전의 기억 장치와 비교해서 본 발명에 따른 ACRC(주소계산과 이동회로)는 주소 계산 후에 기억 모듈 번호에 따라 주소를 정렬하기 위한 5 x 1 멀티플렉서가 필요하지 않기 때문에 제어가 덜 복잡하고 비용이 적게든다. 또한 (pq + 1)개의 가산기에는 5 x 1 멀티플렉서들 사이에 5m x log2(MN / pq)개의 선들이 얽혀 있는데 p = q = 8일 때와 p = q = 16일 때 전체 선의 수가 각각 5,025개와 16,705개이기 때문에 (pq + 1)개의 가산기에서 5 x 1 멀티플렉서들 까지의 이동 회로 구현과 제어는 매우 복잡하다. 이전의 ACRC(주소계산과 이동회로)에는 멀티플렉서와 주소간의 차들을 위한 SRAM에서 가산기 사이에 2pq x log2(MN / pq) + pq 개의 선이 있고, m개의 멀티플렉서와 m개의 배럴시프터 사이에 있다. 또한 종래의 ACRC(주소계산과 이동회로)에서 m개의 배럴 시프터에서 m개의 기억 모듈 사이의 선의 수는 m x log2(MN/pq)이다. 반면에 본 발명에 따른 ACRC(주소계산과 이동회로)에서의 전체선의 숫자는 4m x log2(MN/pq)로 이전 것의 반보다 적다.
[표 9]는 ACRC(주소계산과 이동회로)의 게이트 수를 삼성전자 ASIC KG76(0.6 m 게이트 배열 라이브러리)의 게이트 수에 따라 비교한 예이다.
연산 지연 시간을 M x N x b = 960 x 1280 x 24이고 pq > M일 때 매개변수 p와 q값이 둘 다 32가 아닌 8과 32사이의 2의 멱(power) 값을 갖게 설계한 [표 10]의 연산지연 시간의 가정 하에 비교하였다.
게이트 수 비율과 연산지연 시간의 비율은 이전의 ACRC(주소계산과 이동회로)의 게이트 수와 연산지연시간에 대한 본 발명에 따른 ACRC(주소계산과 이동회로) 각각의 비율이다. 평균 게이트 수의 비율과 평균 연산 지연시간 비율은 각각 1,198과 1,295이다. 게이트 수 비율과 연산 지연시간 비율을 곱한 평균값은 1,549이다. 본 발명에 따른 ACRC(주소계산과 이동회로)에 대해 표준화된 게이트 수는 p=q=8에 대해 게이트 수로 나누어지고 pq/64에 의해 나누어진 게이트 수이다. 그리고 연산 지연 시간은 p = q = 8일 때의 연산지연시간으로 각각 나눈 것이다. 표준화된 결과는 표준화된 게이트 수와 연산지연 시간을 곱한 것으로 구할 수 있다. 표준화된 결과에 따라 본 발명에 따른 ACRC(주소계산과 이동회로)를 위한 가장 좋은 p와 q값을 각각 8과 8로 이다. 그 값들이 표준화된 결과가 M x N x b = 960 x 1,280 x 24에서 가장 작은 값이기 때문이다. 표준화된 결과는 요구된 ACRC(주소계산과 이동회로)에 대해 가장 좋은 p값과 q값을 선택하는데 사용할 수 있다. [표 11]은 요구된 |(p1,q1)|과 가장 좋은 |(p2,q2)|를 선택하여 사용한 구성을 보여준다. 이때, |(p1,q1)|은 제작 파라미터가 p1과 q1인 버퍼기억장치를 나타낸다.
여기서 |(p1,q1)|과|(p2,q2)|는 버퍼 기억 장치의 p값과 q값을 p1과 q1, p2와 q2로 나타낸 것이다.
예를 들어, |(32,8)|의 ACRC(주소계산과 이동회로)가 요구된다면, 4개의|(8,8)|의 ACRC(주소계산과 이동회로)가 요구된 ACRC(주소계산과 이동회로)로 조합하여 사용할 수 있다. 만일 |(8,16)|, |(16,8)|, |(16,16)|, |(8,32)|, |(32,8)|, |(16,32)|, |(32,16)|의 ACRC(주소계산과 이동회로)를 |(8,8)|의 ACRC(주소계산과 이동회로)를 이용하여 구성한다면 1.353의 평균 연산지연시간 비율내의 결과에서 연산지연시간 비율이 1.353으로 증가된다.
자료 이동 회로는 한번의 모듈로(Modulo) 계산과 한번의 회전연산을 수행하고 기억 모듈 선택 회로는 한번의 모듈로(Modulo) 계산과 한번의 디코딩 연산을 수행하기 때문에 자료 이동 회로나 기억 모듈 선택회로의 연산 지연 시간은 본 발명에 따른 ACRC(주소계산과 이동회로)의 연산 지연시간보다 짧다. 그러므로 만일 m개의 기억 모듈 접근 시간이 본 발명에 따른 ACRC(주소계산과 이동회로)의 연산 지연시간보다 작고 ACRC(주소계산과 이동회로)의 m개의 기억 모듈 사이에 m개의 기억 장치 주소 레지스터들이 있고 자료이동 회로와 m개의 기억 모듈 사이에 m개의 기억 장치 버퍼 레지스터들이 있다고 하면, 본 발명에 따른 버퍼 기억 장치는 ACRC(주소계산과 이동회로)의 연산 지연시간 비율 단위 파이프라인 방식으로 수행될 수 있다.
또한 디스플레이 처리기가 본 발명에 따른 ACRC(주소계산과 이동회로)의 연산 지연시간 내에 버퍼 기억 장치로부터 pq개의 영상점들에 대해 요소 연산을 수행한다면, 본 발명에 따른 프레임 버퍼 디스플레이 장치의 전체적 성능은 이전의 ACRC(주소계산과 이동회로)를 사용한 프레임버퍼 디스플레이 장치보다 평균 1.353배 증가 할 수 있다. 그러므로 본 발명에 따른 ACRC(주소계산과 이동회로)는 이전의 기억 장치보다 비용이 적게들고 제어의 복잡성을 줄였고 빠르게 했다.
이하에서 적어도 자료 배열내의 임의의 위치에 있는 3가지 접근 유형의 자료들에 대해 동시 접근이 지원되고 주소계산회로와 주소이동회로, 자료이동 회로의 하드웨어 구현이 고려되어져 있는 기존 기억 장치 방식과 본 발명에 따른 주소계산과 주소이동, 자료이동 방식을 접근유형, 간격, 자료배열의 크기의 제한과 하드웨어의 비용, 속도 복잡성에 대해 비교하였다.
간격 1을 갖는 블록, 열, 행, 대각선, 역대각선 접근형태를 위한 본 발명에 따른 ACRC(주소계산과 이동회로)가 기존의 기억 장치에 비해 보다 저비용, 더욱 단순화된 제어 복잡도, 그리고 빠른 속도에 대해 나타나 있다.
pq ≤ md이고 m이 소수일 때, 종래의 기억 장치[ A. Deb, IEEE Trans. Parallel Distrib. Syst .. Vol. 7, No. 6. pp. 595-604, Jun. 1996.]는 m개의 기억 모듈과 pq개의 PE로 구성되어 있다. Lawrie와 Vora[D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]는 선형 pq벡터 V(a,b,c,d)로 아래의 선형 수식에 의해 형성된 배열 요소들의 pq 요소 집합을 정의했다.
V(a,b,c,e) = {A(i, j): i = ax + b, j = cx + e}, 0 ≤ x < pq ≤m
Lawrie와 Vora [ D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]는 α(μ), 즉 번째 모듈의 주소를 구했다.
α(μ) = ((a + cM) (( - (b + eM + base))d' %m) + b + eM + base) / pq ,
여기서, (a + cM)ㆍd' = 1%m이고 , "base " 는 자료 배열의 기준주소(i, j)이고 M은 배열의 행의 수이다.
(a + cM)ㆍd' = 1%m로부터 d'는 m의 배수들인 간격 M, M+1, M-1의 어떤 경우에서도 구할 수 없다. 왜냐하면 a와 c의 값이 아래와 같이 각 접근 형태로 정의되어져 있기 때문이다.
행 : a = 0이고 c = 양수 간격
열 : c = 0이고 a = 양수 간격
대각선 : a = c = 양수 간격
그리고
역대각선 : a = -c = 양수 간격
그러므로 이 기억 장치[ D. H. Lawrie and C. R. Vora, IEEE Trans. Comput ., vol. C-31, pp.435-442, May 1982.]는 간격과 자료 배열의 크기와 기억 모듈의 수가 제약이 있다.
한편 이전 기억 장치와 달리 본 발명에 따른 기억 장치는 자료 배열의 크기에 대한 제약이 없다. 단지 본 발명에 따른 기억 장치의 제약은 정리1로부터 간격이 기억 모듈 개수의 배수가 아니어야 한다는 것이다. 이전 기억 장치[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986., J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans.Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에서 있던 μ(i, j)에 의한 오른쪽 회전 전에 주소를 정렬하기 위해 하나의 멀티플렉서와 멀티플렉싱 연산시간이 본 발명에 따른 주소 계산회로와 주소이동 회로에서는 주소간의 차들이 미리 정렬되어 있기 때문에 필요치 않다. 만약 멀티플렉서가 12가지 접근 형태에 대해 주소계산과 주소이동방법[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986., J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992., J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에 사용되려고 구현된다면 제어가 매우 복잡해질 것이다. 그것은 접근 형태와 간격이 주소의 정렬에 종속되기 때문이다. 기억 장치[D. C. Van Voorhis and T. H. Morrin, IEEE Trans. Comput ., vol. C-27, pp.113-125, Feb. 1978.]에서 자료 이동회로는 μ(i, j)에 의해 제어되는 다양한 오른쪽 회전 변환기가 필요하다. Park[J. W. Park, IEEE Trans. Comput ., vol. C-35, pp.669-674, July 1986], Park과 Harper[J. W. Park and D. T. Harper III, IEEE Symp. Parallel and Distributed Processing , pp.444-451, Dec. 1992. , J. W. Park and D. T. Harper III, IEEE Trans. Parallel Distrib. Syst .., vol. 7, No. 8, pp.855-860, Aug. 1996.]에 의해 본 발명에 따른 기억 장치의 자료 이동은 멀티플렉서와 배럴 시프터에 의해 수행된다. 이 기억 장치에서는 이전 기억 장치의 자료이동 회로내의 다양한 오른쪽 회전 변환기를 복잡하고 비싸고 느린 crossbar 네트워크로 대치한다. 본 발명에서 멀티플렉싱과회전을 사용하는 자료이동 방법이 제안된다.
여기서, 12가지 접근형태에 대해 양의 간격을 가지는 12가지 자료이동 형태가 ROM과 log2(2(m - 1)) x 2(m - 1)디코더, 3상 버퍼들을 이용한 셀렉터, 그리고 배럴시프터에 의해 구현된 간격 r1(=r%m)인 2개 이동 형태로 감소된다. 또한 표 1에 따라 본 발명에 따른 주소계산, 주소이동 그리고 자료이동 회로는 더 많은 접근유형과 간격을 지원한다.
그러므로 주소계산, 주소이동 그리고 자료이동에 본 발명에 따른 방법은 접근형태들, 간격 그리고 자료배열의 크기에 대한 제약과 하드웨어의 비용과 속도 그리고 복잡성 측면에서 기존 기억 장치들의 방법들보다 좋다는 것을 알 수 있다.
이상에서 설명한 바와 같이, 본 발명에 따른 충돌회피 기억 장치는 예전 기억 장치 이상으로 개선되었다. 하나의 자료배열 내에 임의의 위치에 있는 적어도 3가지 접근 형태의 자료요소들의 동시 접근이 지원된다. 그리고 접근 형태, 간격, 자료배열 크기의 제약과 하드웨어 비용, 속도, 복잡성의 제한 내에서 기억 장치내의 주소계산과 주소 이동회로, 그리고 자료이동회로의 하드웨어 구현이 고려된다.
다양한 행렬연산과 영상처리 연산은 pq개의 PE를 갖는 SIMD처리기와 m(m은 소수, m>pq)개의 기억 모듈을 갖는 기억 장치에 의해 속도를 향상시킬 수 있다.
SIMD처리기는 간격, 자료배열의 크기, 자료 요소의 위치에 제약이 없는 자료배열내의 양수간격을 가지는 다양한 형태의 사각형 블록과 8방향 선형 접근 형태의 pq개의 자료 요소들이 접근되는 기억 장치가 필요하다.
본 발명에 따른 소수개의 기억모듈을 가진 충돌회피 기억장치는 4방향 사각형 블록 양수의 간격으로 연관된 자료요소들이 자료배열 내 어느 위치에 놓여 있든지 (남동쪽 블록, 남서쪽 블록, 북서쪽 블록, 북동쪽 블록) 또는 8방향의 선형 (동쪽 선형, 남동쪽 선형, 남쪽 선형, 남쪽 선형, 남서쪽 선형, 서쪽 선형, 북서쪽 선형, 북쪽 선형, 북동쪽 선형) 접근형태의 pq개 자료요소에 동시접근을 지원할 수 있다.

Claims (3)

  1. m(m>pq)개의 기억모듈과, 자료들에 대한 m개의 주소를 계산하고 그 값을 상기 m개의 기억모듈로 이동시키는 주소계산과 주소이동회로와, 접근되어지는 pq개의 기억모듈을 선택하는 기억모듈선택회로와, 지정된 접근유형과 기준좌표 및 접근유형에서 요구되는 간격정보를 저장하는 자료레지스터와, 상기 자료레지스터내의 자료들을 상기 m개의 기억모듈로 이동시키는 자료이동회로를 포함하여 이루어져 pq개의 프로세싱 엘리먼트(PE: processing element)를 가진 단일 명령 다중 자료(SIMD) 처리기에서 기억장치 접근 시간을 감소시키기 위한 충돌 회피 기억 장치에 있어서;
    4방향 사각형 블록 양수의 간격으로 연관된 자료요소들이 자료배열내 어느 위치(남동쪽 블록, 남서쪽 블록, 북서쪽 블록, 북동쪽 블록)에 놓여 있든지 또는 8방향의 선형(동쪽 선형, 남동쪽 선형, 남쪽 선형, 남쪽 선형, 남서쪽 선형, 서쪽 선형, 북서쪽 선형, 북쪽 선형, 북동쪽 선형) 접근형태의 pq개 자료요소에 동시 접근을 지원하는 것을 특징으로 하는 충돌회피 기억장치.
  2. 제 1 항에 있어서; 상기 주소계산과 주소이동회로는,
    기준좌표와 접근형태 및 간격정보를 제공받는 4개의 5×1 멀티플렉서와,
    주소간의 차를 미리 정렬하고 저장하기 위한 제1, 제2 SRAM과,
    (i/p)s 값들을 위한 제 3 SRAM과,
    상기 멀티플렉서의 출력값을 상기 제1, 제2 SRAM에 전달하는 두개의 가산기와, 상기 제 3 SRAM의 출력 값을 전달받아 더하는 가산기와 m개의 가산기로 이루어진 m+3개의 가산기(adder)와,
    상기 m개의 가산기의 출력을 자료이동회로의 회전신호에 따라 m개의 기억모듈에 전달하는 배럴시프터(barrel shifter)로 이루어지는 것을 특징으로 하는 충돌회피 기억장치.
  3. p×m 개의 주소간의 차들과 q×m개의 주소간의 차들을 각각 접근형태와 각각 간격에 대해 정렬하는 과정과,
    정렬된 p×m 개의 주소간의 차들과 q×m개의 주소간의 차들을 각각 접근형태와 각각 간격에 대해 기억모듈 A와 B에 저장하는 과정과,
    요구되어진 접근형태, i%p, j%q 간격에 의해 기억모듈 A와 B에서 m개의 주소간의 차들을 읽어들이는 과정과,
    읽어들인 m개의 주소간의 차들을 기준주소 α(i, j)에 더하는 과정과,
    m개의 주소를 12 가지 접근형태와 간격 전체에 대하여 μ(0)에 의해 회전시키는 과정과,
    회전되어 계산된 m개의 주소 값을 m개의 기억모듈로 이동시키는 과정으로 이루어지는 것을 특징으로 하는 충돌회피 기억장치를 이용한 주소계산과 자료이동방법.
KR10-2001-0048343A 2001-08-10 2001-08-10 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치 KR100401946B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR10-2001-0048343A KR100401946B1 (ko) 2001-08-10 2001-08-10 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
JP2001262291A JP3802783B2 (ja) 2001-08-10 2001-08-30 衝突防止メモリ装置及びそれを用いたアドレス計算とデータルーティング方法
CNB01132936XA CN1306416C (zh) 2001-08-10 2001-09-10 防冲突储存装置以及采用该装置的地址运算与数据选路方法
US10/106,542 US6845423B2 (en) 2001-08-10 2002-03-26 Conflict-free memory system and method of address calculation and data routing by using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0048343A KR100401946B1 (ko) 2001-08-10 2001-08-10 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치

Publications (2)

Publication Number Publication Date
KR20030014023A true KR20030014023A (ko) 2003-02-15
KR100401946B1 KR100401946B1 (ko) 2003-10-17

Family

ID=19713092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0048343A KR100401946B1 (ko) 2001-08-10 2001-08-10 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치

Country Status (4)

Country Link
US (1) US6845423B2 (ko)
JP (1) JP3802783B2 (ko)
KR (1) KR100401946B1 (ko)
CN (1) CN1306416C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725641B2 (en) 2006-11-15 2010-05-25 Samsung Electronics Co., Ltd. Memory array structure and single instruction multiple data processor including the same and methods thereof

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415161B2 (en) * 2004-03-25 2008-08-19 Faraday Technology Corp. Method and related processing circuits for reducing memory accessing while performing de/compressing of multimedia files
JP3985797B2 (ja) * 2004-04-16 2007-10-03 ソニー株式会社 プロセッサ
GB0420004D0 (en) * 2004-09-09 2004-10-13 Koninkl Philips Electronics Nv Interconnections in SIMD processor architectures
TWI298448B (en) * 2005-05-05 2008-07-01 Ind Tech Res Inst Memory-based fast fourier transformer (fft)
US20070208794A1 (en) * 2005-12-13 2007-09-06 Prashant Jain Conflict-free memory for fast walsh and inverse fast walsh transforms
US7650483B2 (en) * 2006-11-03 2010-01-19 Arm Limited Execution of instructions within a data processing apparatus having a plurality of processing units
EP2138937A4 (en) 2007-04-12 2011-01-26 Nec Corp DATA PROCESSING DEVICE OF ARRAY PROCESSORYPSY
KR100922732B1 (ko) * 2007-12-10 2009-10-22 한국전자통신연구원 메모리 액세스 충돌 감소 장치 및 방법
US9939413B2 (en) 2008-01-09 2018-04-10 Surf Technology As Measurement and imaging of scatterers with memory of scatterer parameters using at least two-frequency elastic wave pulse complexes
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
CN110347637A (zh) * 2018-04-08 2019-10-18 北京嘉楠捷思信息技术有限公司 Asic阵列、数据处理板以及区块挖掘方法和设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4355376A (en) * 1980-09-30 1982-10-19 Burroughs Corporation Apparatus and method for utilizing partially defective memory devices
KR900000114B1 (ko) * 1986-12-29 1990-01-20 박종원 영상처리용 메모리시스템
JPH05290188A (ja) * 1992-04-15 1993-11-05 Fujitsu Ltd 超並列計算機
KR0121295B1 (ko) * 1993-09-18 1997-11-17 박종원 영상 분석처리의 간격허용 다중접근 기억장치
KR0119725B1 (ko) * 1994-04-14 1997-10-29 조백제 선형변환 방법을 이용한 영상처리용 병렬기억장치
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
KR20020009247A (ko) * 2000-07-25 2002-02-01 서평원 다중프로세스 시스템에서 비수행 프로세스의 데이터에접근하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725641B2 (en) 2006-11-15 2010-05-25 Samsung Electronics Co., Ltd. Memory array structure and single instruction multiple data processor including the same and methods thereof

Also Published As

Publication number Publication date
US6845423B2 (en) 2005-01-18
US20030126351A1 (en) 2003-07-03
KR100401946B1 (ko) 2003-10-17
JP3802783B2 (ja) 2006-07-26
JP2003067361A (ja) 2003-03-07
CN1402136A (zh) 2003-03-12
CN1306416C (zh) 2007-03-21

Similar Documents

Publication Publication Date Title
JP7271667B2 (ja) 行列の空間局所性変換
KR100401946B1 (ko) 주소계산과 자료이동방법 및 이를 이용한 충돌회피 기억 장치
EP0313788B1 (en) An aperiodic mapping method to enhance power-of-two stride access to interleaved devices
EP2446413B1 (en) Apparatus and method for displaying a warped version of a source image
CN116303111A (zh) 使用专用计算单元的硬件双缓存
Park Multiaccess memory system for attached SIMD computer
CN101427264A (zh) 用于位平面数据的高密度存储和处理的方法和装置
CA2087106C (en) High performance array processor
US7401177B2 (en) Data storage device, data storage control apparatus, data storage control method, and data storage control program
CN108169716A (zh) 基于sdram芯片的sar成像系统矩阵转置装置和图案交织方法
JP2002529814A (ja) ベクトルアクセスを有するメモリ装置
US4926386A (en) Memory system for image processing having address calculating circuitry permitting simultaneous access to block horizontal sequence and vertical sequence subarrays of an array of data
WO2016007069A1 (en) Device and method for performing a fourier transform on a three dimensional data set
US7903118B2 (en) Methods for allocating information to system resources using improved mapping
Aho et al. Parallel memory architecture for arbitrary stride accesses
CN109445852B (zh) 一种在多核处理器中提升内存访问效率的方法及系统
KR920008266B1 (ko) 효율적인 영상분석 처리 메모리 시스템
US12007914B2 (en) Direct data transfer system
Kaplan A flexible interleaved memory design for generalized low conflict memory access
CN112947854B (zh) 一种基于双通道ddr3的sar数据存储和访问方法及装置
JPH04127339A (ja) キヤツシユメモリシステム
Danielsson Algorithm-driven architecture for parallel image processing
JPH0522238B2 (ko)
Nakano et al. Random Address Permute-Shift Technique for the Shared Memory on GPUs
CN113095030A (zh) 一种可伸缩的并行数据载入装置及方法

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: 20120824

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130806

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20161010

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180212

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180809

Year of fee payment: 16