아이테니엄과 제온 EM64T에서의 개발

lica619의 이미지

안녕하십니까? 작년 한해는 x86 CPU의 64bit화가 거세게 진행되었는데요. 한가지 궁금한 점이 있어서 질문드립니다.

제가 알기로는 MS에서는 아이테니엄은 네이티브64bit라고 해서 제온 EM64T하고는 구분을 짓는것 같더군요. 그래서 작년에 EM64T를 지원하는 윈도우가 개발이 된것 같구요.
한가지 궁금한 점이 있는데요.
1) 기존에 IA-32기반으로 돌고 있던 application을 64bit로 마이그레이션을 할 때 과연 컴파일만 다시 하면 되는건지 아니면 application원 소스를 다시 고쳐야 되는건지 알 고싶구요.
2) 64bit 마이그레이션시 아이테니엄과 EM64T제온의 경우 둘 다 마이그레이션이 비슷한지 아니면 더 간단히 마이그레이션이 가능한 것이 있는지 알고 싶네요.
3) 개발 툴들도 32bit,64bit용이 따로 있는건지요?
4) 그냥 기존의 32bit 제온에서 사용하던 소스를 64bit 개발툴에서 컴파일만 하면 되는건지요?
5) 아이테니엄의 경우 제가 알기로 EPIC기반이어서 그 기반에 맞게 개발을 해야 성능이 잘 나오고 아닐 경우 더 성능이 안나온다고 하는데 맞는지요? 그렇다면 그 기반에 맞게 개발을 한다는 의미가 어떤건지도 좀 알 고 싶습니다.

주저리 질문만 올리게 되네요. 아직 64bit가 활성화가 안되어서인지 가끔 보면 EM64T로 64bit application을 사용하는 사람들의 경우 문제가 되는 경우를 보는데 EM64T 64bit개발시 고려해야 할 점은 무엇일까요?

그럼 좋은 하루 보내시기 바랍니다.

jongwooh의 이미지

lica619 wrote:

1) 기존에 IA-32기반으로 돌고 있던 application을 64bit로 마이그레이션을 할 때 과연 컴파일만 다시 하면 되는건지 아니면 application원 소스를 다시 고쳐야 되는건지 알 고싶구요.

어플리케이션 따라 다릅니다. 계산위주의 어플리케이션이나 디바이스 드라이버처럼 하드웨어와 밀접한 관련이 있는 것들은 소스를 고쳐야 할 가능성이 크고 해야 하고, 단순히 문자처리 및 GUI 위주의 어플리케이션들은 다시 컴파일만 하는 정도로 족합니다.
그리고 32비트 호환 모드도 내장하고 있기 때문에 바이너리를 그대로 쓸 수도 있습니다.

Quote:
2) 64bit 마이그레이션시 아이테니엄과 EM64T제온의 경우 둘 다 마이그레이션이 비슷한지 아니면 더 간단히 마이그레이션이 가능한 것이 있는지 알고 싶네요.

EM64T는 x86_64 또는 AMD 아키텍처와 실제로 같다고 볼 수 있으므로 x86_64라고 부르겠습니다. 아이테니엄보다 x86_64가 더 마이그레이션 면에서 편합니다. (IA32 즉 x86 을 그대로 작동시킬 수 있으므로)

Quote:
3) 개발 툴들도 32bit,64bit용이 따로 있는건지요?

같은 툴이 32비트와 64비트의 두가지 타겟의 바이너리를 만들어 낼 수 있게끔 되어 있습니다.

Quote:
4) 그냥 기존의 32bit 제온에서 사용하던 소스를 64bit 개발툴에서 컴파일만 하면 되는건지요?

종류따라 틀리지만 많은 경우 그냥 컴파일만 해도 됩니다.

Quote:
5) 아이테니엄의 경우 제가 알기로 EPIC기반이어서 그 기반에 맞게 개발을 해야 성능이 잘 나오고 아닐 경우 더 성능이 안나온다고 하는데 맞는지요? 그렇다면 그 기반에 맞게 개발을 한다는 의미가 어떤건지도 좀 알 고 싶습니다.

대부분의 어플리케이션 (UI및 IO를 담당하는 프로그램들)은 프로세서 특성을 안 타는데 특성을 타는 계산소프트웨어나 커널 레벨의 개발 같은 것들은 레지스터 크기나 숫자를 잘 이용하게끔 짜면 성능이 더 향상된다는 의미입니다.

Quote:

주저리 질문만 올리게 되네요. 아직 64bit가 활성화가 안되어서인지 가끔 보면 EM64T로 64bit application을 사용하는 사람들의 경우 문제가 되는 경우를 보는데 EM64T 64bit개발시 고려해야 할 점은 무엇일까요?

'사용하는 사람' 의 겪는 문제와 '개발하는 사람' 이 겪는 문제는 좀 다릅니다. 리눅스를 사용하는 사람은 64비트용 플래쉬 플레이어같은게 없다는 정도가 좀 불펴한거고, 개발하는 사람이 겪는 문제는 기존 32비트용으로 작성된 소스가 64비트로 컴파일될 때 int형 크기와 포인터 크기가 달라지는 기술적 내용에 신경을 써야 하는거죠.

you must know the power of dark side.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.