# LinxISA
**Repository Path**: pyyx/LinxISA
## Basic Information
- **Project Name**: LinxISA
- **Description**: LinxISA是一种面向高性能计算设计的块结构指令集架构(ISA)
- **Primary Language**: C/C++
- **License**: BSD-3-Clause
- **Default Branch**: main
- **Homepage**: https://www.oschina.net/p/linx-isa
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-09-05
- **Last Updated**: 2026-09-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
LinxISA: Block-Structured Instruction Set Architecture
---
## What is LinxISA?
**LinxISA** is a block-structured instruction set architecture (ISA) designed for high-performance computing. Unlike traditional scalar ISAs, LinxISA organizes instructions into **blocks** that execute as atomic units, enabling:
- **Explicit block boundaries** with mandatory control-flow integrity
- **Two-layer state model** (global + block-local state)
- **Vector/tile extensions** for SIMD-style parallelism
- **Template blocks** for function prologues/epilogues and accelerator operations
This repository serves as the **superproject** that pins together all ecosystem components: compiler (LLVM), emulator (QEMU), Linux kernel, RTL (LinxCore), and standard libraries (glibc, musl).
The current machine-readable ISA authority is
`isa/v0.58/linxisa-v0.58.json`. Historical profiles and archives do not define
current encodings or semantics.
Tile operations execute on exactly four engines: **VEC**, **SFU**, **TLSU**,
and **CUBE**. VEC is restricted to element-wise operations, while SFU handles
complex functions and transformations. TEPL remains the unchanged
Mode/Function encoding carrier for VEC/SFU and is not an engine.
---
## Quick Start
### Clone and Initialize a Required Pinned Leaf
```bash
git clone git@github.com:LinxISA/linx-isa.git
cd linx-isa
git submodule sync -- compiler/llvm
git submodule update --init compiler/llvm
```
### Run Validation Gates
```bash
# Canonical ISA + AVS contract validation
python3 tools/isa/build_golden.py --profile v0.58 --check
python3 tools/isa/validate_spec.py --profile v0.58
python3 tools/isa/check_canonical_v058.py --root .
python3 tools/bringup/check_avs_contract.py --matrix avs/linx_avs_v1_test_matrix.yaml
python3 tools/bringup/check_avs_profile_closure.py --matrix avs/linx_avs_v1_test_matrix.yaml --status avs/linx_avs_v1_test_matrix_status.json --tier pr
# Full regression suite
bash tools/regression/run.sh
```
---
## Repository Structure
```
linx-isa/
├── avs/ # Architecture Validation Suite
│ ├── qemu/ # Runtime AVS tests (QEMU)
│ ├── compiler/ # Compile-only AVS tests (LLVM)
│ └── runtime/ # Freestanding libc support
│
├── compiler/ # LLVM submodule (linx-isa target)
├── emulator/ # QEMU submodule (linx-isa emulation)
├── kernel/ # Linux kernel submodule
├── rtl/ # LinxCore RTL submodule
├── lib/ # Standard libraries (glibc, musl)
│ ├── glibc/
│ └── musl/
│
├── tools/ # Build scripts, generators, regression
│ ├── bringup/ # Bring-up orchestration
│ ├── regression/ # Test runners
│ ├── Linx-TileOP-API/ # v0.58 Linx tile-operation API (submodule)
│ └── pyCircuit/ # ISA model (submodule)
│
├── workloads/ # Benchmarks and kernels
│ └── pto_kernels/ # PTO kernels + SuperNPU workloads (submodule)
│
├── isa/ # ISA specification sources
│ ├── v0.58/ # current canonical ISA definition
│ ├── v0.57/ # retained previous stable profile
│ └── generated/ # Generated encodings/decoders
│
└── docs/ # Architecture & bring-up documentation
├── architecture/ # ISA manual and references
├── bringup/ # Bring-up status and gates
├── reference/ # Examples and guides
└── project/ # Navigation and policies
```
---
## Submodules
| Submodule | Repository | Purpose |
|-----------|------------|---------|
| `compiler/llvm` | [LinxISA/llvm-project](https://github.com/LinxISA/llvm-project) | LLVM-based compiler for Linx |
| `emulator/qemu` | [LinxISA/qemu](https://github.com/LinxISA/qemu) | QEMU-based emulator |
| `kernel/linux` | [LinxISA/linux](https://github.com/LinxISA/linux) | Linux kernel port |
| `rtl/LinxCore` | [LinxISA/LinxCore](https://github.com/LinxISA/LinxCore) | RTL implementation |
| `tools/pyCircuit` | [LinxISA/pyCircuit](https://github.com/LinxISA/pyCircuit) | ISA reference model |
| `tools/Linx-TileOP-API` | [LinxISA/Linx-TileOP-API](https://github.com/LinxISA/Linx-TileOP-API) | Linx v0.58 tile-operation API |
| `lib/glibc` | [LinxISA/glibc](https://github.com/LinxISA/glibc) | GNU C Library port |
| `lib/musl` | [LinxISA/musl](https://github.com/LinxISA/musl) | musl libc port |
| `workloads/pto_kernels` | [PTO-ISA/pto-kernels](https://github.com/PTO-ISA/pto-kernels) | PTO kernels and the maintained SuperNPU workload subtree |
### Updating a Pinned Submodule
```bash
# Fetch and select an already reviewed leaf commit
git -C compiler/llvm fetch origin
git -C compiler/llvm checkout --detach
git add compiler/llvm
# Verify layout
bash tools/ci/check_repo_layout.sh
```
Never update all submodules implicitly or select an unreviewed remote tip.
---
## Validation & Testing
### Core Gates
| Gate | Command | Description |
|------|---------|-------------|
| **AVS Compatibility** | `python3 tools/bringup/check_avs_contract.py --matrix avs/linx_avs_v1_test_matrix.yaml` | Public `v0.57` compatibility matrix; fresh `v0.58` consumer evidence is required separately |
| **AVS Closure** | `python3 tools/bringup/check_avs_profile_closure.py --matrix avs/linx_avs_v1_test_matrix.yaml --status avs/linx_avs_v1_test_matrix_status.json --tier pr` | Tier-scoped AVS closure status |
| **Sail Model** | `python3 tools/bringup/check_sail_model.py` | Sail wording, status, and parser/typecheck gate |
| **Compiler AVS** | `cd avs/compiler/linx-llvm/tests && ./run.sh` | LLVM code generation tests |
| **QEMU Runtime** | `cd avs/qemu && ./run_tests.sh --all` | Emulator execution tests |
| **Linux Boot** | `python3 kernel/linux/tools/linxisa/initramfs/smoke.py` | Kernel boot validation |
### Regression Suites
```bash
# Main regression (fast)
bash tools/regression/run.sh
# Full stack (includes Linux boot)
bash tools/regression/full_stack.sh
# Strict cross-repo (release gates)
bash tools/regression/strict_cross_repo.sh
```
---
## Documentation
- **Website**: https://linxisa.github.io/
- **[Getting Started](docs/bringup/GETTING_STARTED.md)** - Onboarding guide
- **[Architecture Contract](docs/architecture/v0.58-architecture-contract.md)** - ISA v0.58 specification
- **[Encoding Space](docs/reference/encoding_space_report.md)** - Current generated allocation report
- **[Bring-up Progress](docs/bringup/PROGRESS.md)** - Current status tracking
- **[Navigation Guide](docs/project/navigation.md)** - Repository layout policy
- **[ISA Manual](docs/architecture/isa-manual/README.md)** - Complete ISA documentation
---
## Versioning
- **ISA Version**: v0.58 (current stable profile)
- **Repository**: This superproject pins specific commits of all ecosystem repos
- **Release Notes**: See [docs/releases/](docs/releases/) for version history
---
## Contributing
1. Follow the [navigation policy](docs/project/navigation.md)
2. Implement changes in the relevant submodule first
3. Run validation gates locally before submitting
4. Update submodule SHAs in this workspace
5. Ensure `tools/ci/check_repo_layout.sh` passes
---
## License
See [LICENSE](LICENSE) file for details.