<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Architecture</title><link>https://sourceforge.net/p/opensoc86/wiki/Architecture/</link><description>Recent changes to Architecture</description><atom:link href="https://sourceforge.net/p/opensoc86/wiki/Architecture/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 16 Sep 2014 23:36:10 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/opensoc86/wiki/Architecture/feed" rel="self" type="application/rss+xml"/><item><title>Architecture modified by Roy van Koten</title><link>https://sourceforge.net/p/opensoc86/wiki/Architecture/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -1,7 +1,7 @@
 OpenSOC86 Pipeline
 ----

-The processor is design with a nine-stage pipeline. The main execution stage may be somewhat unusual. Because the x86 architecture has instructions that can do calculations and multiple memory accesses with a single instruction, it would take multiple cycles to execute these with a classic RISC pipeline. A dedicated unit for effective-address calculation can be added to improve the efficiency of a RISC pipeline. The current ‘RMXW’ pipeline is chosen in order to use this extra unit even more efficiently and execute much more instructions in a single pipeline cycle. The choice for this pipeline does result in extra hazards when instructions try to read memory before the same address is written to by a previous instruction. However these hazards can be resolved quite easily. A description of the pipeline is shown below.
+The processor is designed with a nine-stage pipeline. The main execution stage may be somewhat unusual. Because the x86 architecture has instructions that can do calculations and multiple memory accesses with a single instruction, it would take multiple cycles to execute these with a classic RISC pipeline. A dedicated unit for effective-address calculation can be added to improve the efficiency of a RISC pipeline. The current ‘RMXW’ pipeline is chosen in order to use this extra unit even more efficiently and execute much more instructions in a single pipeline cycle. The choice for this pipeline does result in extra hazards when instructions try to read memory before the same address is written to by a previous instruction. However these hazards can be resolved quite easily. A description of the pipeline is shown below.

 [[img src=pipeline.jpg]]

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roy van Koten</dc:creator><pubDate>Tue, 16 Sep 2014 23:36:10 -0000</pubDate><guid>https://sourceforge.netb4af3046749c0dfa96861ab78724fa3f4cc68ad8</guid></item><item><title>Architecture modified by Roy van Koten</title><link>https://sourceforge.net/p/opensoc86/wiki/Architecture/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -18,4 +18,4 @@
 W  |Write back |Write to register file or memory

-The decode and issue stages contain buffer to respectively store fetched bytes and decoded instructions. For now there is no bypassing in these buffers resulting in a longer latency after calls and jump. This should be fixed in a future release. 
+The decode and issue stages contain buffers to respectively store fetched bytes and decoded instructions. For now there is no bypassing in these buffers resulting in a longer latency after calls and jumps. This should be fixed in a future release. 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roy van Koten</dc:creator><pubDate>Tue, 16 Sep 2014 21:41:40 -0000</pubDate><guid>https://sourceforge.netd417cac79e6b0c399019f70aa9fdb73e9749c687</guid></item><item><title>Architecture modified by Roy van Koten</title><link>https://sourceforge.net/p/opensoc86/wiki/Architecture/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,4 +1,21 @@
-TODO
+OpenSOC86 Pipeline
 ----

+The processor is design with a nine-stage pipeline. The main execution stage may be somewhat unusual. Because the x86 architecture has instructions that can do calculations and multiple memory accesses with a single instruction, it would take multiple cycles to execute these with a classic RISC pipeline. A dedicated unit for effective-address calculation can be added to improve the efficiency of a RISC pipeline. The current ‘RMXW’ pipeline is chosen in order to use this extra unit even more efficiently and execute much more instructions in a single pipeline cycle. The choice for this pipeline does result in extra hazards when instructions try to read memory before the same address is written to by a previous instruction. However these hazards can be resolved quite easily. A description of the pipeline is shown below.
+
 [[img src=pipeline.jpg]]
+
+Nine-stage Pipeline| |
+--------|-------|----------
+F  |Fetch  |Fetch 8 words from memory
+L  |Length decode  |Decode instruction length
+D  |Decode |Buffer fetched bytes and decode instructions
+S  |Sequencer  |Get the microcode address from ROM
+I  |Issue  |Buffer decoded instructions and get the microcode from ROM
+R  |Read   |Read from register file
+M  |Memory read    |Read from memory
+X  |Execute    |Execute ALU, mult, div, shift, ...
+W  |Write back |Write to register file or memory
+
+
+The decode and issue stages contain buffer to respectively store fetched bytes and decoded instructions. For now there is no bypassing in these buffers resulting in a longer latency after calls and jump. This should be fixed in a future release. 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roy van Koten</dc:creator><pubDate>Tue, 16 Sep 2014 21:40:15 -0000</pubDate><guid>https://sourceforge.net621a08ce7e474888628fcd62e1b71cd15b53715c</guid></item><item><title>Architecture modified by Roy van Koten</title><link>https://sourceforge.net/p/opensoc86/wiki/Architecture/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,2 +1,4 @@
 TODO
 ----
+
+[[img src=pipeline.jpg]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roy van Koten</dc:creator><pubDate>Tue, 16 Sep 2014 21:37:54 -0000</pubDate><guid>https://sourceforge.net45d478677b5ced69c738bfd68f0deef39a41eaab</guid></item><item><title>Architecture modified by Roy van Koten</title><link>https://sourceforge.net/p/opensoc86/wiki/Architecture/</link><description>&lt;div class="markdown_content"&gt;&lt;h2 id="todo"&gt;TODO&lt;/h2&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Roy van Koten</dc:creator><pubDate>Tue, 16 Sep 2014 20:54:10 -0000</pubDate><guid>https://sourceforge.net382d8d580f0e94c9cdf10d6713eba7a409b70c1d</guid></item></channel></rss>