DOS Library utilizing a second CPU core

beebix1 pts1 comments

GitHub - arjunae/2core_dos: lib2core manages a second cpu core in DOS · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

arjunae

2core_dos

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

home

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>1 Commit<br>1 Commit

2core_264

2core_264

mock

mock

2core.cc

2core.cc

2core.h

2core.h

2core_c_api.cc

2core_c_api.cc

2core_c_api.h

2core_c_api.h

README.TXT

README.TXT

apboot.asm

apboot.asm

build2core.sh

build2core.sh

lib2core.a

lib2core.a

View all files

Repository files navigation

LIB2CORE - READMDE.txt

This is lib2Core. Its build upon the shoulders of bloodwych's DOS_multicore [demo](https://www.vogons.org/viewtopic.php?t=111336)<br>which was was extended and embedded within this library. The basic Concept is as follows:

The Host Core 0: Runs your standard DJGPP application, manages system initialization, handles OS level interrupts, and schedules jobs.<br>The Worker Core 1: Runs a bare raw binary image entirely dedicated to the computation loop. It has no direct access to standard DOS or DJGPP system calls.

lib2core is following a Producer/Consumer pattern between the two cores:<br>- main core (BSP) bootstraps the system using core2.setupSys("worker.bin"), wakes the secondary core via its APIC ID using core2.startAp<br>and launches the worker binary into execution memory with core2.spawn.<br>- main core pushes incoming processing data into the shared share_mem ring buffer, advances the tail_idx pointer<br>- secondary core runs an infinite loop polling the head_idx and queues the finished payloads back into the resRing structure.<br>- main core concurrently polls the system result queue, processes the calculated data back from high physical memory.

[ Main Core (Host) ] [ Secondary Core (Worker) ]<br>│ │<br>1. Writes data into slot │<br>2. Executes memory barrier │<br>3. Updates tail_idx ────(Job is now visible)───────────────>│ 4. Detects head_idx != tail_idx<br>│ │ 5. Processes the job<br>│ │<br>│ │ 6. Executes QUEUE_RESULT:<br>│ │ - Writes result payload<br>8. Reads result

About

lib2core manages a second cpu core in DOS

Resources

Readme

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

stars

Watchers

watching

Forks

forks

Report repository

Releases

No releases published

Packages

Uh oh!

There was an error while loading. Please reload this page.

Contributors

Uh oh!

There was an error while loading. Please reload this page.

You can’t perform that action at this time.

core lib2core reload search commit data

Related Articles