두개의 CPU?

bblackstar의 이미지

이곳에서 처음으로 질문의 글을 올립니다. ^^

두개의 CPU가 있는데... 이 두개의 CPU는 일반적인 SMP 같은 기능으로 사용
될 상황이 아니라 각각의 메모리를 가지고 따로 돌아야 하는 상황입니다.

두개의 CPU도 core 종류가 다른 상황이고요. (ppc <--> sparc)

이럴때 이 두개의 프로세서가 정보를 공유하려면 어떠한 방법을 취해야 하는
것이 옳은지 경험이 있으시거나, 좋은 아이디어가 떠오르시는 분들의 조언을
얻고자 합니다.

읽어주셔서 감사합니다. ^^*

bugiii의 이미지

대량의 데이터가 왔다 갔다 해야 합니까?
실시간성이 보장되어야 합니까?

bblackstar의 이미지

음...

실시간성은 꼭 보장이 되어야 하구요.

아직 구상단계라 애매모호 하지만 그 두 CPU 사이의 대역폭은 일정하게
낮은 데이터 흐름을 보이다가도, burst 한 데이터양도 견디어 내야 할 것
같습니다.

cdpark의 이미지

그냥 헤테로 클러스터라고 생각하면 되는 것 아닌가요? 두 CPU가 각각 독립된 컴퓨터라 생각하고요.

두 종류의 CPU에 다 도는 하나의 OS를 올리는 건 아니겠죠?

bugiii의 이미지

제가 경험한 것은 듀얼 포트 램 (공유 메모리로) 과 각방향 FIFO 나 인터럽트로 변경사항을 통지하는 것이었습니다.

어차피 하드웨어를 새로 구성하셔야 하는 것이라면 한번 고려해보시는 것도...

hb_kim의 이미지

Infiniband 로 클러스터를 구성하면 어떻겠습니까?

Asynchronous Multi Processing 은 SMP와 다르게 응용에 따라 사양이 천차만별이라 구체적인 요구 사항이 정리되지 않으면 디자인이 나오기 힘들것 같습니다.

bblackstar의 이미지

네... 헤테로 클러스터가 비슷 할 듯 싶네요. 두개의 서로다른 core 에
서로다른 OS가 올라갈 예정입니다. bugiii 님이 말씀 하셨듯이 듀얼
포트램을 사용해 보는 것도 좋을 거 같습니다.

지금 이 두개의 시스템?이 한 장비 안에 들어가야 하는데요. 한 장비
안에 Infiniband 클러스터를 구성한다면, 듀얼포트램 방식 같은 것에
비해 오버헤드가 커지지 않을지 궁금합니다. ^^

답변 감사드립니다.

hb_kim의 이미지

듀얼 포트 메모리를 사용하면 프로세서간 DMA 가 안된다는 것을 뜻하므로 Infiniband 와는 다르게 대량의 데이터를 옮기는데 지장이 있습니다.

이전 답변에서도 말씀드렸듯이,
두개의 프로세서가 뭘해야 하는지 대략 알아야 어떻게 시스템을 구성해야 될지 방향이 나올수 있습니다. 어떤 제품을 만드시는지 궁금하군요.

혹 구체적인 사양을 제시하시기 어려우시다면 아래를 참조하시기 바랍니다.

가장 간단한 예는,
하나의 CPU는 범용으로 모든 일을 하고, 다른 coprocessor/DSP/sequencer 등은 특정한 업무만을 하는것입니다. 대부분 데이터 패스는 보조 프로세서에 국한되어 있습니다. 이런 응용예는 주변에 너무나도 많습니다. 보통 보조프로세서에 이미 이런 응용을 대비해서 IPC 인터페이스가 되어 있는 경우가 많습니다. 없다면 말씀하신대로 외부회로를 구성해줘야겠죠.

조금더 복잡한 예:
때로는 2개 이상의 CPU 가 관리 정보를 공유할때가 있습니다. 소량의 데이터이고, 전달 시간이 별로 중요하지 않을 경우, I2C 나 시리얼포트로 정보를 공유합니다. Master/slave 개념을 사용하거나 사용하지 않거나 할수 있습니다. 대량의 데이터를 실시간으로 옮기기에는 별로 적합하지 않습니다.

최고사양:
2개 이상의 시스템이 대량의 데이터를 공유하는 클러스터의 경우가 가장 복잡한 경우입니다. 정말로 엄청난 bandwidth 의 데이터 처리능력을 가지는 클러스터 디자인을 보시려면 EMC 나 Hitachi 등의 스토리지 클러스터 아키텍쳐를 들여다 보시면 됩니다. 다만 proprietary architecture 이므로 그냥 디자인을 검토/참조만 할수 있을 뿐입니다. 이런것을 범용화한것이 Infiniband 라고 보여집니다.

저의 경우는 회사 업무상 위의 3 종류 디자인을 모두 접해보았는데 처음 2 종류는 간단하게 사용할수 있으나, 일단 CPU간 범용+고성능의 data path 가 필요하면 디자인 비용/사이클이 상상을 초월할 정도로 높습니다. 따라서 data path 가 과연 범용적이어야 하는지, 혹은 특수한 용도로만 쓰이도록 디자인 될수 있는지가 우선적으로 결정되어야 하다고 봅니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.