<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[multithreading, memory-models, ...]]></title><description><![CDATA[<p>So. Ich weiss was ich suche, aber leider fällt es mir schwer das zu &quot;verbalisieren&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich suche eine genaue Beschreibung zum Thema &quot;memory visibility&quot; bzw. allgemein zum &quot;memory model&quot; mit verschiedenen CPUs (allen voran x86 Serie und Power PC G4/G5, was halt heute so verwendet wird). Speziell geht es mir um sog. &quot;memory barriers&quot;, welche es auf den verschiedenen Plattformen gibt (load , store, full, dependent load etc.), und wie diese aussehen (assembler code).</p>
<p>Genauso wäre von Interesse wie ich verschiedenen Compilern beibringe dass sie über eine Bestimmte Stelle hinweg kein Reordering machen, und zwar möglichst billig, also ohne gleich eine Systemfunktion aufrufen zu müssen. MSVC 8 bietet dazu die intrinsics _ReadBarrier, _WriteBarrier und _ReadWriteBarrier an, aber bei anderen Compilern hab' ich leider keine Ahnung wie das geht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175562/multithreading-memory-models</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 06:22:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175562.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Mar 2007 02:23:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to multithreading, memory-models, ... on Mon, 12 Mar 2007 02:23:55 GMT]]></title><description><![CDATA[<p>So. Ich weiss was ich suche, aber leider fällt es mir schwer das zu &quot;verbalisieren&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich suche eine genaue Beschreibung zum Thema &quot;memory visibility&quot; bzw. allgemein zum &quot;memory model&quot; mit verschiedenen CPUs (allen voran x86 Serie und Power PC G4/G5, was halt heute so verwendet wird). Speziell geht es mir um sog. &quot;memory barriers&quot;, welche es auf den verschiedenen Plattformen gibt (load , store, full, dependent load etc.), und wie diese aussehen (assembler code).</p>
<p>Genauso wäre von Interesse wie ich verschiedenen Compilern beibringe dass sie über eine Bestimmte Stelle hinweg kein Reordering machen, und zwar möglichst billig, also ohne gleich eine Systemfunktion aufrufen zu müssen. MSVC 8 bietet dazu die intrinsics _ReadBarrier, _WriteBarrier und _ReadWriteBarrier an, aber bei anderen Compilern hab' ich leider keine Ahnung wie das geht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243726</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 12 Mar 2007 02:23:55 GMT</pubDate></item><item><title><![CDATA[Reply to multithreading, memory-models, ... on Mon, 12 Mar 2007 07:24:35 GMT]]></title><description><![CDATA[<p>x86 und x86-64 führen ihre Speicherzugriffe geordnet durch. Da musst du dir nur Sorgen um den Compiler machen.</p>
<p><a href="http://ridiculousfish.com/blog/archives/2007/02/17/barrier/" rel="nofollow">http://ridiculousfish.com/blog/archives/2007/02/17/barrier/</a><br />
<a href="http://www.gelato.unsw.edu.au/lxr/source/Documentation/memory-barriers.txt" rel="nofollow">http://www.gelato.unsw.edu.au/lxr/source/Documentation/memory-barriers.txt</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243747</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 12 Mar 2007 07:24:35 GMT</pubDate></item><item><title><![CDATA[Reply to multithreading, memory-models, ... on Mon, 12 Mar 2007 20:04:27 GMT]]></title><description><![CDATA[<p>Hm. Biste 100% sicher? Ich hab bezüglich Core 2 mal was zum Thema Reordering gelesen... *hmmm*.<br />
Wenn das stimmt frage ich mich nämlich auch wieso z.B. Windows zum Freigeben einer CRITICAL_SECTION nen &quot;Interlocked&quot; Befehl verwendet... würde ja ein einfaches &quot;lock = 0&quot; reichen. *hmmm*</p>
<p>Die Links sehe ich mir dann zuhause durch (bin noch inner Arbeit), aber schonmal Danke.</p>
<p>Wenn noch jmd. was weiss immer her damit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244295</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 12 Mar 2007 20:04:27 GMT</pubDate></item></channel></rss>