Search found 178 matches

by agner
2020-05-05, 5:29:45
Forum: forwardcom forum
Topic: Implications of ForwardCom memory management approach
Replies: 15
Views: 27060

Re: Implications of ForwardCom memory management approach

Current systems are allocating memory blocks of 4kB each - sometimes bigger. I want to avoid the fixed-size blocks. With 4GB RAM you will have a million 4kB blocks. Such a huge page table may be too big to fit on the chip. You may have nested page tables and other complexities. In current systems, a...
by agner
2020-05-02, 4:29:18
Forum: forwardcom forum
Topic: Implications of ForwardCom memory management approach
Replies: 15
Views: 27060

Re: Implications of ForwardCom memory management approach

These methods are intended to reduce memory fragmentation. You don't need more RAM. Current systems have large page tables and a translation lookaside buffer (TLB). These pages are taking a lot of hardware and software resources. If you don't have memory fragmentation you don't need page tables. You...
by agner
2020-04-26, 6:57:37
Forum: forwardcom forum
Topic: Putting it on real hardware
Replies: 7
Views: 17122

Re: Putting it on real hardware

I have finally allocated time to do an FPGA implementation of ForwardCom. Can you mention some good examples of softcores that I can use as a starting template?
by agner
2020-04-26, 6:44:28
Forum: forwardcom forum
Topic: More efficient ways of detecting exceptions
Replies: 1
Views: 12940

Re: More efficient ways of detecting exceptions

I have finally decided for method 2 mentioned above. This is now fully implemented in version 1.09 of the emulator and documented in the manual. This method makes sure that the detection of an exception is tied to the output of the specific instruction. The result of an exception is either the defau...
by agner
2020-04-18, 5:34:36
Forum: forwardcom forum
Topic: What about optimising for faster loops?
Replies: 1
Views: 7116

Re: What about optimising for faster loops?

I agree that loop unrolling can be a bad thing. It is a waste of code cache. Compilers are often unrolling loops excessively. Intel CPUs do indeed have a buffer similar to what you are proposing. In fact, they have two. There is a loopback buffer that can recycle decoded instructions after the decod...
by agner
2020-04-06, 17:12:35
Forum: forwardcom forum
Topic: Possible difficulties for microcode-less implementations
Replies: 8
Views: 17054

Re: Possible difficulties for microcode-less implementations

Kulasko wrote: Presumably, decoders don't have a constant latency and output just zero or one operation per clock, but n operations. If an instruction generates two µ-ops, then you can put the second one in a pending position and stall the decoder in the next clock cycle. You can do the same with a ...
by agner
2020-04-02, 4:47:12
Forum: forwardcom forum
Topic: Possible difficulties for microcode-less implementations
Replies: 8
Views: 17054

Re: Possible difficulties for microcode-less implementations

Thanks for your analysis. The ABI guarantees that you can read a maximum vector length beyond the actual data without going into non-available memory. The restore of a variable-length vector could take advantage of this and use a single read of the size of a length-specifier plus the maximum vector ...
by agner
2020-03-22, 5:36:31
Forum: forwardcom forum
Topic: Using Forwardcom as a GPU?
Replies: 11
Views: 17947

Re: Using Forwardcom as a GPU?

I have never worked with graphic processing, but this is certainly worth doing. You could either use the FPGA feature to make custom instructions or make it hard coded. Do the instructions have long latency?
by agner
2020-03-06, 9:18:07
Forum: forwardcom forum
Topic: Possible difficulties for microcode-less implementations
Replies: 8
Views: 17054

Re: Possible difficulties for microcode-less implementations

Thank you for looking at this.

This instruction is so important that it is worth some extra hardware. I am imagining a state machine for this instruction. You don't have to use any advanced data compression algorithm, just adjust the length so that unused register bits are not saved/restored.
by agner
2020-02-12, 5:35:11
Forum: forwardcom forum
Topic: Putting it on real hardware
Replies: 7
Views: 17122

Re: Putting it on real hardware

Thanks for the advice. I think that https://opencores.org/ is the place to host the project and look for help. I am just too busy with other projects to start it up right now.
by agner
2020-02-08, 11:28:08
Forum: forwardcom forum
Topic: Current status of bintools
Replies: 4
Views: 10147

Re: Current status of bintools

Thank you for reporting this problem.

Now I have updated the code and fixed a problem with Linux. Does it work now?
by agner
2020-02-07, 6:12:00
Forum: forwardcom forum
Topic: Current status of bintools
Replies: 4
Views: 10147

Re: Current status of bintools

Thanks for your interest. All the tools are there, including emulator. What may confuse you is that all the tools are combined into a single executable file. See the manual for how to use it. You can find a windows executable in forw.zip. In other operating systems, you have to compile the executabl...
by agner
2020-02-04, 6:38:51
Forum: forwardcom forum
Topic: NAN propagation instead of fault trapping. Can we avoid speculative execution?
Replies: 3
Views: 15105

Re: NAN propagation instead of fault trapping. Can we avoid speculative execution?

This discussion is continued in a new thread. Different ways of detecting floating point exceptions and errors are discussed here: viewtopic.php?f=1&t=124
by agner
2020-02-04, 5:20:24
Forum: forwardcom forum
Topic: Putting it on real hardware
Replies: 7
Views: 17122

Re: Putting it on real hardware

It is all on https://www.forwardcom.info and in the manual https://github.com/ForwardCom/manual/raw/master/forwardcom.pdf . I think it is too early to write papers about it. Forwardcom is currently a one man project and I am busy with other projects right now. That's why progress goes slowly. It wou...
by agner
2020-02-03, 5:29:09
Forum: forwardcom forum
Topic: Putting it on real hardware
Replies: 7
Views: 17122

Re: Putting it on real hardware

No, this is in a development stage. It has not been coded on an FPGA yet. Any help with this will be appreciated.
by agner
2020-02-02, 7:46:04
Forum: forwardcom forum
Topic: More efficient ways of detecting exceptions
Replies: 1
Views: 12940

More efficient ways of detecting exceptions

Floating point errors are traditionally detected in two ways: with a global status register or by traps (software interrupts). Both methods are problematic with out-of-order execution and vector processing (SIMD) for the following reasons. A global status register has to be updated after every float...
by agner
2019-02-19, 5:56:15
Forum: forwardcom forum
Topic: How to know if an instruction requires microcode
Replies: 3
Views: 11264

Re: How to know if an instruction requires microcode

The x86 instruction set has developed through many years. What was optimal in the 1980s is not optimal today, but today's processors have to be backward compatible with everything that has been added through the years. For example, it is faster to calculate a sine using a function library, but you s...
by agner
2019-02-17, 5:53:58
Forum: forwardcom forum
Topic: How to know if an instruction requires microcode
Replies: 3
Views: 11264

Re: How to know if an instruction requires microcode

Microprocessors generally use microcode for complex instructions that are doing complex things, or a sequence of multiple things. Typical examples are: Instructions that save or restore all registers on task switches Mathematical functions such as sin and cos Gather and scatter The microcode works l...
by agner
2019-01-28, 15:18:28
Forum: forwardcom forum
Topic: Range/Interval based floating point computation
Replies: 1
Views: 8242

Re: Range/Interval based floating point computation

It is possible to change the rounding mode globally using the Numeric control register, or for an individual instruction or even for a single vector element using a mask register.
by agner
2019-01-24, 17:34:37
Forum: forwardcom forum
Topic: Computational standards compliance
Replies: 3
Views: 10993

Re: Computational standards compliance

80 bit float is not mentioned in the IEEE standard. It was introduced with the Intel 8087 coprocessor and AFAIK used only in Intel-compatible processors.
The IEEE standard mentions the following floating point types: binary16, binary32, binary64, binary128.
by agner
2019-01-21, 19:56:54
Forum: forwardcom forum
Topic: Computational standards compliance
Replies: 3
Views: 10993

Re: Computational standards compliance

The intention is to support IEEE-754 in the form of the next revision forthcoming in 2019. Among the forthcoming changes to IEEE-754 is a sanitation of the max and min functions for NAN inputs. Subnormal numbers may be turned off by default for performance reasons. They are very costly to support. T...
by agner
2018-12-17, 13:36:04
Forum: forwardcom forum
Topic: Handling paging without a page system
Replies: 3
Views: 11584

Re: Handling paging without a page system

There are no fixed-size pages. The OS would have to make an arbitrary-size entry in the memory map for a block of memory that has been swapped to disk.
by agner
2018-09-30, 4:36:28
Forum: forwardcom forum
Topic: Protection against spambots
Replies: 0
Views: 28225

Protection against spambots

There has been a lot of spam posting here lately. Apparently the security question was too easy to answer for spambots. Now I have changed the security question to make it more difficult. The answer is a single word.
by agner
2018-08-26, 9:27:26
Forum: forwardcom forum
Topic: Interesting new ISA: MRISC32
Replies: 13
Views: 28320

Re: Interesting new ISA: MRISC32

mbitsnbites wrote: The most common problem is zero-terminated strings. With naive instructions this becomes a data dependent branched loop, where the content of every byte needs to be inspected, and it's impossible for the CPU to correctly predict the final branch. This problem has already been solv...
by agner
2018-08-26, 5:30:30
Forum: forwardcom forum
Topic: Interesting new ISA: MRISC32
Replies: 13
Views: 28320

Re: Interesting new ISA: MRISC32

mbitsnbites wrote: in my design I need to know the vector operation length before accessing the vector register file. I have the vector register fetch in one pipeline stage, and I have the vector register element indexing logic in the pipeline stage before that. I have solved that problem by requiri...