Search found 185 matches

by agner
2018-02-25, 10:30:39
Forum: forwardcom forum
Topic: What to do with unclear standards?
Replies: 8
Views: 19652

What to do with unclear standards?

The C++ standard has many cases of 'undefined' behavior which can have quite bad consequences. The ForwardCom design should avoid this and behave in a well-defined and predictable way as far as possible. Here I will propose some solutions to the undefined and unclear situations: 1. Signed integer ov...
by agner
2018-02-24, 13:18:46
Forum: forwardcom forum
Topic: Forwardcom possible execution pipeline?
Replies: 11
Views: 21253

Re: Forwardcom possible execution pipeline?

Thanks for your detailed analysis. I think it is more efficient to not split instructions into micro-ops. The same entry in the pipeline or reservation station will access address generation unit, read memory operands, wait for missing operands, and go to an execution unit. You are right that the de...
by agner
2018-02-11, 16:50:20
Forum: forwardcom forum
Topic: Source code changes for Forwardcom compatibility
Replies: 5
Views: 11294

Re: Source code changes for Forwardcom compatibility

Would the musl C library be the best choice for ForwardCom initially ... ?
Yes, musl looks useful. I intend to write the most common library functions in ForwardCom assembly, the rest might use C code from musl.
by agner
2018-02-06, 12:21:52
Forum: forwardcom forum
Topic: Virtualization
Replies: 3
Views: 9560

Re: Virtualization

JoeDuarte wrote:
Would the complexity of the microcode be affected by limiting FC's virtualization support to identical guest OSes?
Yes. You wouldn't need any hardware support for that - just a subdivision of the memory space.
by agner
2018-02-02, 6:57:27
Forum: forwardcom forum
Topic: Different instruction sets on different cores
Replies: 18
Views: 31679

Re: Different instruction sets on different cores

Hubert wrote: Video games use TONS of floating point math ForwardCom has optional support for half precision floating point vectors. Do you think that video and sound applications can use half precision? Neural networks is another application for half precision. The operand type field in the instruc...
by agner
2018-01-24, 7:03:24
Forum: forwardcom forum
Topic: Source code changes for Forwardcom compatibility
Replies: 5
Views: 11294

Re: Source code changes for Forwardcom compatibility

A C++ compiler for ForwardCom is definitely on my wish list. It might be implemented as a back-end to Clang or Gcc. Standard C and C++ programs should compile without problems as long as they don't rely on platform-specific features such as inline assembly or intrinsic functions. Certain things work...
by agner
2018-01-24, 6:20:06
Forum: forwardcom forum
Topic: Virtualization
Replies: 3
Views: 9560

Re: Virtualization

Virtualization requires complex micro-coded instructions. This is something I want to avoid in order to keep the hardware simple and efficient. These features can be added later if needed, but many applications will not need them.
by agner
2018-01-22, 5:53:27
Forum: forwardcom forum
Topic: Different instruction sets on different cores
Replies: 18
Views: 31679

Re: Different instruction sets on different cores

Joe, In a logarithmic number system, multiplication and division become simpler, but addition and subtraction become much more complicated. Your links confirm this. A program with an equal number of additions and multiplications will be faster on a floating point computer than on a logarithmic proce...
by agner
2018-01-17, 18:05:20
Forum: forwardcom forum
Topic: Process memory defragmentation by another process
Replies: 3
Views: 10250

Re: Process memory defragmentation by another process

Hubert wrote: How many active memory map entries do you think it would be electrically feasible to have on a typical chip? Each entry marking a boundary between memory sections will need one comparator. So the silicon requirement will be somewhat similar to a contents-addressable memory. They can be...
by agner
2018-01-14, 9:02:20
Forum: forwardcom forum
Topic: Process memory defragmentation by another process
Replies: 3
Views: 10250

Re: Process memory defragmentation by another process

This sounds like an excellent idea, if I understand you right (I am not sure what you mean by "behind" and "over"). We can really gain a lot if we can construct a system with little or no memory fragmentation. We can get rid of the large translation lookaside buffer (TLB) and mul...
by agner
2018-01-07, 19:22:17
Forum: forwardcom forum
Topic: Side-channel attacks
Replies: 2
Views: 8982

Re: Meltdown and Spectre flaws

Hubert, I have moved your post to the thread "Side-channel attacks". The question is discussed above. A ForwardCom processor will never ignore page faults if it has an on-chip memory map, as I have proposed, because access violation will be detected immediately and this will stop speculati...
by agner
2018-01-07, 8:46:40
Forum: forwardcom forum
Topic: Side-channel attacks
Replies: 2
Views: 8982

Side-channel attacks

This week, there has been a lot of discussion about the newly discovered vulnerability known as side-channel attacks [1]. Most modern superscalar microprocessors have this vulnerability due to their use of speculative execution. The existence of this vulnerability has been confirmed by Intel, AMD, A...
by agner
2017-12-20, 17:55:30
Forum: forwardcom forum
Topic: Different instruction sets on different cores
Replies: 18
Views: 31679

Re: Different instruction sets on different cores

A logarithmic number system is efficient as long as you are using it for multiplication only, but difficult if you want to do addition. You need no extra hardware for multiplying logarithmic numbers - this is simply addition of integers. Another possibility is to use standard floating point numbers ...
by agner
2017-12-13, 9:30:12
Forum: forwardcom forum
Topic: Event handlers
Replies: 1
Views: 8098

Event handlers

I want to add a feature for event handlers. It will work like this: A source code file can define any number of event handlers. Each event handler has a record with the following information: event id, priority, key, and a relative pointer to a function to handle the event. The linker makes a list o...
by agner
2017-11-02, 14:30:24
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

New idea: Re-linkable libraries in ForwardCom

Author: Agner Date: 2017-04-27 00:03 I am working on the binary utilities for ForwardCom, and I have got an idea of a new concept for function libraries. The well-known method for static linking is used. An option to the linker specifies that certain object files or library files should be re-linka...
by agner
2017-11-02, 14:20:39
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Proposal for instruction set - now on Github

Author: yeengief Date: 2017-09-20 14:03 Re variable instruction lengths: Consider some forced alignment, e.g. every 16-byte (or every 32-byte) boundary MUST begin a new instruction. This has minimal impact on the effective code density (if your compiler is not stupid), while allowing almost random ...
by agner
2017-11-02, 14:16:00
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Number of register file ports in implementations

Author: Hubert Lamontagne Date: 2017-08-22 12:46 I've taken another quick look today at the specs to figure out how feasible a Verilog implementation running on a FPGA would be, and I'm finding that register file read port counts are on the higher end... 2 ports per AGU (address generating unit), p...
by agner
2017-11-02, 14:07:06
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Assembler with metaprogramming features

Author: Agner Date: 2017-07-27 02:06 I am working on making an assembler for ForwardCom, and I think that the design of assemblers could use an update, now that we are redesigning everything anyway. I found that it was not too hard to make the assembly syntax look very much like C or Java, rather t...
by agner
2017-11-02, 14:06:00
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Intel's Control-flow Enforcement Technology

Author: Joe Duarte Date: 2017-04-13 20:12 FYI, Intel has an upcoming solution for protecting return addresses: https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf It would be interesting to compare ForwardCom's approach to CET. Author: Agner ...
by agner
2017-11-02, 14:05:01
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

High precision arithmetic

Author: fanoI Date: 2017-03-21 03:41 Agner the code to do an addition between "big integers" that is at page 85 of the forwardcom manual is applicable to any CPU that can do vector integers addition? It could work with x86 using PADDB? This idea is applicable to all other operators (-, *,...
by agner
2017-11-02, 14:03:42
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Jump prefetch?

Author: csdt Date: 2017-01-27 10:21 Branch predictors is currently a hard part of a CPU. I propose to help it a bit in the same way we can help the cache: tell it in advance where we want to jump. I think this can be done by a couple of instructions: - chose the destination from 2 immediates based ...
by agner
2017-11-02, 13:56:12
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Syscall/ISR acceleration

Author: Jonathan Brandmeyer Date: 2017-01-22 23:22 There are a few features of ARM Cortex-M (the microcontroller profile) that I miss when writing system-level programs in other architectures, including Cortex-A/R: - Lack of a control register space. In Cortex-M, the processor's control registers a...
by agner
2017-11-02, 13:54:51
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

ForwardCom version 1.05

Author: Agner Date: 2017-01-22 04:39 Changes in version 1.05: Systematic description of all instructions. Added chapter: Support for multiple instruction sets. Added chapter: Software optimization guidelines. Bit manipulation instructions improved. Shift instructions can multiply float by power of ...
by agner
2017-11-02, 13:53:59
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Comparison of instruction sets

Author: Agner Date: 2016-12-17 03:39 Joe Duarte wrote: it would be nice to have a detailed comparison of ForwardCom and RISC-V, much of it in the form of comparison tables that get into specific features and decisions. I volunteer to help assemble such a comparison document if you're too busy. Now ...
by agner
2017-11-02, 13:51:06
Forum: forwardcom forum
Topic: The original proposal, 2 years ago
Replies: 44
Views: 1279446

Async system calls; horizontal packing instruction

Author: Joe Duarte Date: 2016-12-14 06:13 Hi Agner. I've been thinking about some interesting research I've read recently, and it raises a couple of questions for me: 1. Does ForwardCom assume synchronous system calls? Could it support a flexible async syscall architecture? I'm not sure where the b...